knitr::opts_chunk$set(echo = TRUE)

Introduction

What is an Elo rating system?

An Elo rating system was first developed by Hungarian-American physics professor, Arpad Elo in 1960, and consists of assigning a player or team a numerical value to indicate their skill level. Typically, values exceeding 1500 Elo Rating Points can be considered a good team with values reaching 1700+ a very strongly performing unit. It was originally, and commonly, designed for chess players but with the advancement in sports analytics, it can be an extremely valuable tool in assessing teams strengths and weaknesses. It is a dynamic, iterative model that updates the teams strength rating after every completed match.

Why is it useful in NRL Analysis?

Elo rating analysis in sports, and in particular in the NRL, can be extremely useful when supporting decisions within a club as a singular analysis but also in conjunction with other data insights. It gives a simple and interpretative way to track performance across a season or many seasons as temporal analysis and gives a time frame for periods of success or when the team is not in form. That information can be useful when coinciding with enhanced, game-specific data analysis of the intricacies and key performance indicators (KPI) of rugby league that attribute to the success or failure.

The dynamic nature of Elo rating modelling means that the teams Elo score updates weekly depending on the outcome of the match and the extent of the points change is directly attributed to the teams expected outcome probability. This gives a truer reflection of team form than the simple win/loss ratio as lower ranked teams will gain more points for a win than a higher ranked team as their probabilistic prediction is less likely to come true. Furthermore, Elo rating points are used in ‘Power Rankings’ which offer a real-time insight into team strength across the season as opposed to the NRL points based ladder. For example, a team maybe in 9th place on the ladder, who are just missing finals, with an Elo score of 1550, whereas another team can be in 6th place but have a rating of 1520. This model suggests that the trailing team is stronger but is lower down in the ladder as they have beaten stronger opposition more recently so are in a better position to qualify for the finals as the season progresses.

A key aspect of Elo rating modelling that can be used in NRL clubs is the fact that it is the backbone of future prediction and simulation of matches. The data analytics department of a club can use methods similar to this to simulate future matches thus predicting a final ladder projection. Predicting game outcomes generate season-long expected win totals which are then used for evaluating whether the team has under or over-performed. The ultimate goal for all teams in the NRL is to qualify for finals football and reach the Grand Final, Elo modelling can analyse and assess the teams finals chances.

A key role of the analytics department within a professional sports club is to use data to find insights and then to successfully and simply convey these to the relevant decision-making stakeholders such as coaches, performance staff or players. Elo rating analysis uses simple data and maths to exhibit big insights for those who might not understand the data science aspect behind it.

My motivation and goals for this report.

I have recently completed my Graduate Certificate in Data Analytics for Sport Performance from Victoria University and I want to use the knowledge I have learnt to apply a data analytics approach to a real-world sports context. I want to show how analytics can be applied to performance analysis and forecasting and demonstrate my understanding of advanced modelling techniques, whilst tailoring it to the NRL and the Melbourne Storm specifically. The role of analytics within professional sport is ever expanding and is imperative to be used to enhance performance by informing smarter, evidence based decisions.

My aim is to create a series of reports and projects that can be used in NRL analysis to create a portfolio of my knowledge and showcasing my skills in manipulating real-world data, visualising and interpreting results and most importantly, communicating these findings and insights coherently to non-technical stakeholders.

I am passionate about data analytics, sport and particularly NRL and the Melbourne Storm. I want to turn this passion into a professional opportunity whether that be a job or volunteering role to learn from professionals in the environment.

Data Set

The data set used in this workflow is that of the scorelines for every fixture (including finals) from the 2017 season through to the end of the 2021 season.

The variables include temporal information such as the year, round, date and time of kick off as well geographical information such as the state region and stadium. The key variables used in the analysis are the named Home Team (hteam) and Away Team (ateam) and their scores for each match. The ‘match_id’ can be used to identify specific fixtures throughout this time period.

I was able to get this data source from the website: https://www.kaggle.com/datasets/thecruncherau/nrl-results

# Load Packages ----
library(tidyverse)
library(ggplot2)
library(elo)
library(plotly)
library(rmarkdown)
library(tibble)
library(knitr)
library(kableExtra)
library(htmltools)

# Load Data ----
nrl <- read_csv("/home/gthornton1999/NRL_Portfolio/Data/Elo/nrldata.csv")

# Kable table of raw data
nrl %>%
  kable(caption = "Table 1 - Raw NRL Match Data 2017 - 2021") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive")) %>%
  scroll_box(height = "400px")
Table 1 - Raw NRL Match Data 2017 - 2021
year round date time location region hteam ateam hscore ascore match_id
2017 1 02/03/2017 20:05:00 Woolooware NSW Sharks Broncos 18 26 201701CROBRI
2017 1 03/03/2017 18:00:00 Belmore NSW Bulldogs Storm 6 12 201701CNBMEL
2017 1 03/03/2017 20:05:00 Homebush NSW Rabbitohs Wests Tigers 18 34 201701SOUWST
2017 1 04/03/2017 16:30:00 Kogarah NSW Dragons Panthers 42 10 201701SGIPEN
2017 1 04/03/2017 19:00:00 Kirwan QLD Cowboys Raiders 20 16 201701NQLCBR
2017 1 04/03/2017 21:00:00 Robina QLD Titans Roosters 18 32 201701GLDSYD
2017 1 05/03/2017 14:00:00 Penrose NZ Warriors Knights 26 22 201701AKLNEW
2017 1 05/03/2017 16:00:00 Brookvale NSW Sea Eagles Eels 12 20 201701MNLPAR
2017 2 09/03/2017 20:05:00 Moore Park NSW Roosters Bulldogs 28 24 201702SYDCNB
2017 2 10/03/2017 18:00:00 Penrose NZ Warriors Storm 10 26 201702AKLMEL
2017 2 10/03/2017 20:05:00 Milton QLD Broncos Cowboys 20 21 201702BRINQL
2017 2 11/03/2017 15:00:00 Newcastle NSW Knights Titans 34 26 201702NEWGLD
2017 2 11/03/2017 17:30:00 Brookvale NSW Sea Eagles Rabbitohs 18 38 201702MNLSOU
2017 2 11/03/2017 19:30:00 Bruce ACT Raiders Sharks 16 42 201702CBRCRO
2017 2 12/03/2017 16:00:00 Leumeah NSW Wests Tigers Panthers 2 36 201702WSTPEN
2017 2 12/03/2017 18:30:00 Wollongong NSW Dragons Eels 16 34 201702SGIPAR
2017 3 16/03/2017 20:05:00 Melbourne VIC Storm Broncos 14 12 201703MELBRI
2017 3 17/03/2017 18:00:00 Dunedin NZ Bulldogs Warriors 24 12 201703CNBAKL
2017 3 17/03/2017 20:05:00 Robina QLD Titans Eels 26 14 201703GLDPAR
2017 3 18/03/2017 16:30:00 Newcastle NSW Knights Rabbitohs 18 24 201703NEWSOU
2017 3 18/03/2017 19:00:00 Penrith NSW Panthers Roosters 12 14 201703PENSYD
2017 3 18/03/2017 21:00:00 Kirwan QLD Cowboys Sea Eagles 8 30 201703NQLMNL
2017 3 19/03/2017 16:00:00 Bruce ACT Raiders Wests Tigers 46 6 201703CBRWST
2017 3 19/03/2017 18:30:00 Woolooware NSW Sharks Dragons 10 16 201703CROSGI
2017 4 23/03/2017 20:05:00 Homebush NSW Rabbitohs Roosters 6 20 201704SOUSYD
2017 4 24/03/2017 18:00:00 Penrith NSW Panthers Knights 40 0 201704PENNEW
2017 4 24/03/2017 20:05:00 Milton QLD Broncos Raiders 13 12 201704BRICBR
2017 4 25/03/2017 16:30:00 Brookvale NSW Sea Eagles Bulldogs 36 0 201704MNLCNB
2017 4 25/03/2017 19:00:00 Homebush NSW Eels Sharks 6 20 201704PARCRO
2017 4 25/03/2017 21:00:00 Robina QLD Titans Cowboys 26 32 201704GLDNQL
2017 4 26/03/2017 16:00:00 Lilyfield NSW Wests Tigers Storm 14 22 201704WSTMEL
2017 4 26/03/2017 18:30:00 Kogarah NSW Dragons Warriors 26 12 201704SGIAKL
2017 5 30/03/2017 20:05:00 Homebush NSW Bulldogs Broncos 10 7 201705CNBBRI
2017 5 31/03/2017 18:00:00 Moore Park NSW Roosters Sea Eagles 12 18 201705SYDMNL
2017 5 31/03/2017 20:05:00 Kirwan QLD Cowboys Rabbitohs 20 6 201705NQLSOU
2017 5 01/04/2017 15:00:00 Woolooware NSW Sharks Knights 19 18 201705CRONEW
2017 5 01/04/2017 17:30:00 Bruce ACT Raiders Eels 30 18 201705CBRPAR
2017 5 01/04/2017 19:30:00 Melbourne VIC Storm Panthers 28 6 201705MELPEN
2017 5 02/04/2017 14:00:00 Penrose NZ Warriors Titans 28 22 201705AKLGLD
2017 5 02/04/2017 16:00:00 Homebush NSW Wests Tigers Dragons 6 28 201705WSTSGI
2017 6 06/04/2017 19:50:00 Milton QLD Broncos Roosters 32 8 201706BRISYD
2017 6 07/04/2017 18:00:00 Newcastle NSW Knights Bulldogs 12 22 201706NEWCNB
2017 6 07/04/2017 19:50:00 Penrith NSW Panthers Rabbitohs 20 21 201706PENSOU
2017 6 08/04/2017 15:00:00 Brookvale NSW Sea Eagles Dragons 10 35 201706MNLSGI
2017 6 08/04/2017 17:30:00 Robina QLD Titans Raiders 16 42 201706GLDCBR
2017 6 08/04/2017 19:30:00 Kirwan QLD Cowboys Wests Tigers 16 26 201706NQLWST
2017 6 09/04/2017 14:00:00 Penrose NZ Warriors Eels 22 10 201706AKLPAR
2017 6 09/04/2017 16:00:00 Melbourne VIC Storm Sharks 2 11 201706MELCRO
2017 7 14/04/2017 16:00:00 Homebush NSW Bulldogs Rabbitohs 24 9 201707CNBSOU
2017 7 14/04/2017 18:00:00 Newcastle NSW Knights Roosters 6 24 201707NEWSYD
2017 7 14/04/2017 19:50:00 Milton QLD Broncos Titans 24 22 201707BRIGLD
2017 7 15/04/2017 15:00:00 Brookvale NSW Sea Eagles Storm 26 30 201707MNLMEL
2017 7 15/04/2017 17:30:00 Bruce ACT Raiders Warriors 20 8 201707CBRAKL
2017 7 15/04/2017 19:30:00 Wollongong NSW Dragons Cowboys 28 22 201707SGINQL
2017 7 16/04/2017 16:00:00 Penrith NSW Panthers Sharks 2 28 201707PENCRO
2017 7 17/04/2017 16:00:00 Homebush NSW Eels Wests Tigers 26 22 201707PARWST
2017 8 21/04/2017 18:00:00 Bruce ACT Raiders Sea Eagles 18 20 201708CBRMNL
2017 8 21/04/2017 19:50:00 Homebush NSW Rabbitohs Broncos 24 25 201708SOUBRI
2017 8 22/04/2017 15:00:00 Homebush NSW Eels Panthers 18 12 201708PARPEN
2017 8 22/04/2017 17:30:00 Kirwan QLD Cowboys Knights 24 12 201708NQLNEW
2017 8 22/04/2017 19:30:00 Woolooware NSW Sharks Titans 12 16 201708CROGLD
2017 8 23/04/2017 16:00:00 Homebush NSW Wests Tigers Bulldogs 18 12 201708WSTCNB
2017 8 25/04/2017 16:00:00 Moore Park NSW Roosters Dragons 13 12 201708SYDSGI
2017 8 25/04/2017 19:00:00 Melbourne VIC Storm Warriors 20 14 201708MELAKL
2017 9 27/04/2017 19:50:00 Milton QLD Broncos Panthers 32 18 201709BRIPEN
2017 9 28/04/2017 18:00:00 Moore Park NSW Rabbitohs Sea Eagles 8 46 201709SOUMNL
2017 9 28/04/2017 19:50:00 Kirwan QLD Cowboys Eels 6 26 201709NQLPAR
2017 9 29/04/2017 15:00:00 Robina QLD Titans Knights 38 8 201709GLDNEW
2017 9 29/04/2017 17:30:00 Homebush NSW Bulldogs Raiders 16 10 201709CNBCBR
2017 9 29/04/2017 19:30:00 Lilyfield NSW Wests Tigers Sharks 16 22 201709WSTCRO
2017 9 30/04/2017 14:00:00 Penrose NZ Warriors Roosters 14 13 201709AKLSYD
2017 9 30/04/2017 16:00:00 Wollongong NSW Dragons Storm 22 34 201709SGIMEL
2017 10 11/05/2017 19:50:00 Homebush NSW Bulldogs Cowboys 14 30 201710CNBNQL
2017 10 12/05/2017 18:00:00 Kogarah NSW Dragons Sharks 14 18 201710SGICRO
2017 10 12/05/2017 19:50:00 Homebush NSW Wests Tigers Rabbitohs 8 28 201710WSTSOU
2017 10 13/05/2017 15:00:00 Penrith NSW Panthers Warriors 36 28 201710PENAKL
2017 10 13/05/2017 17:30:00 Milton QLD Storm Titans 36 38 201710MELGLD
2017 10 13/05/2017 19:50:00 Milton QLD Sea Eagles Broncos 14 24 201710MNLBRI
2017 10 14/05/2017 14:00:00 Newcastle NSW Knights Raiders 34 20 201710NEWCBR
2017 10 14/05/2017 16:00:00 Moore Park NSW Roosters Eels 48 10 201710SYDPAR
2017 11 18/05/2017 19:50:00 Woolooware NSW Sharks Cowboys 18 14 201711CRONQL
2017 11 19/05/2017 18:00:00 Hamilton NZ Warriors Dragons 14 30 201711AKLSGI
2017 11 19/05/2017 19:50:00 Milton QLD Broncos Wests Tigers 36 0 201711BRIWST
2017 11 20/05/2017 17:30:00 Robina QLD Titans Sea Eagles 10 30 201711GLDMNL
2017 11 20/05/2017 19:30:00 Homebush NSW Eels Raiders 16 22 201711PARCBR
2017 11 21/05/2017 14:00:00 Newcastle NSW Knights Panthers 20 30 201711NEWPEN
2017 11 21/05/2017 16:00:00 Homebush NSW Bulldogs Roosters 18 24 201711CNBSYD
2017 11 21/05/2017 18:30:00 Perth WA Rabbitohs Storm 6 14 201711SOUMEL
2017 12 26/05/2017 19:50:00 Homebush NSW Rabbitohs Eels 16 22 201712SOUPAR
2017 12 27/05/2017 17:30:00 Penrose NZ Warriors Broncos 28 10 201712AKLBRI
2017 12 27/05/2017 19:30:00 Woolooware NSW Sharks Bulldogs 9 8 201712CROCNB
2017 12 28/05/2017 16:00:00 Bruce ACT Raiders Roosters 24 16 201712CBRSYD
2017 13 02/06/2017 18:00:00 Melbourne VIC Storm Knights 40 12 201713MELNEW
2017 13 02/06/2017 19:50:00 Homebush NSW Eels Warriors 32 24 201713PARAKL
2017 13 03/06/2017 15:00:00 Homebush NSW Dragons Wests Tigers 16 12 201713SGIWST
2017 13 03/06/2017 17:30:00 Moore Park NSW Roosters Broncos 18 16 201713SYDBRI
2017 13 03/06/2017 19:30:00 Kirwan QLD Cowboys Titans 20 8 201713NQLGLD
2017 13 04/06/2017 14:00:00 Brookvale NSW Sea Eagles Raiders 21 20 201713MNLCBR
2017 13 04/06/2017 16:00:00 Homebush NSW Bulldogs Panthers 0 38 201713CNBPEN
2017 14 08/06/2017 19:50:00 Woolooware NSW Sharks Storm 13 18 201714CROMEL
2017 14 09/06/2017 18:00:00 Brookvale NSW Sea Eagles Knights 18 14 201714MNLNEW
2017 14 09/06/2017 19:50:00 Milton QLD Broncos Rabbitohs 24 18 201714BRISOU
2017 14 10/06/2017 15:00:00 Robina QLD Titans Warriors 12 34 201714GLDAKL
2017 14 10/06/2017 17:30:00 Bathurst NSW Panthers Raiders 24 20 201714PENCBR
2017 14 10/06/2017 19:30:00 Marrara NT Eels Cowboys 6 32 201714PARNQL
2017 14 11/06/2017 16:00:00 Leumeah NSW Wests Tigers Roosters 18 40 201714WSTSYD
2017 14 12/06/2017 16:00:00 Homebush NSW Bulldogs Dragons 16 2 201714CNBSGI
2017 15 16/06/2017 19:50:00 Homebush NSW Rabbitohs Titans 36 20 201715SOUGLD
2017 15 17/06/2017 17:30:00 Melbourne VIC Storm Cowboys 23 22 201715MELNQL
2017 15 17/06/2017 19:30:00 Woolooware NSW Sharks Wests Tigers 24 22 201715CROWST
2017 15 18/06/2017 16:00:00 Homebush NSW Eels Dragons 24 10 201715PARSGI
2017 16 23/06/2017 18:00:00 Penrose NZ Warriors Bulldogs 21 14 201716AKLCNB
2017 16 23/06/2017 19:50:00 Leumeah NSW Wests Tigers Titans 14 26 201716WSTGLD
2017 16 24/06/2017 15:00:00 Kirwan QLD Cowboys Panthers 14 12 201716NQLPEN
2017 16 24/06/2017 17:30:00 Bruce ACT Raiders Broncos 20 30 201716CBRBRI
2017 16 24/06/2017 19:30:00 Adelaide SA Roosters Storm 25 24 201716SYDMEL
2017 16 25/06/2017 14:00:00 Kogarah NSW Dragons Knights 32 28 201716SGINEW
2017 16 25/06/2017 16:00:00 Woolooware NSW Sharks Sea Eagles 18 35 201716CROMNL
2017 17 29/06/2017 19:50:00 Homebush NSW Eels Bulldogs 13 12 201717PARCNB
2017 17 30/06/2017 18:00:00 Robina QLD Titans Dragons 20 10 201717GLDSGI
2017 17 30/06/2017 19:50:00 Milton QLD Broncos Storm 12 42 201717BRIMEL
2017 17 01/07/2017 15:00:00 Gosford NSW Roosters Sharks 12 44 201717SYDCRO
2017 17 01/07/2017 17:30:00 Perth WA Sea Eagles Warriors 26 22 201717MNLAKL
2017 17 01/07/2017 19:30:00 Bruce ACT Raiders Cowboys 18 31 201717CBRNQL
2017 17 02/07/2017 14:00:00 Newcastle NSW Knights Wests Tigers 12 33 201717NEWWST
2017 17 02/07/2017 16:00:00 Homebush NSW Rabbitohs Panthers 42 14 201717SOUPEN
2017 18 07/07/2017 19:50:00 Moore Park NSW Roosters Rabbitohs 14 12 201718SYDSOU
2017 18 08/07/2017 17:30:00 Penrith NSW Panthers Sea Eagles 16 8 201718PENMNL
2017 18 08/07/2017 19:30:00 Melbourne VIC Storm Eels 6 22 201718MELPAR
2017 18 09/07/2017 16:00:00 Belmore NSW Bulldogs Knights 20 18 201718CNBNEW
2017 19 14/07/2017 18:00:00 Penrose NZ Warriors Panthers 22 34 201719AKLPEN
2017 19 14/07/2017 19:50:00 Bruce ACT Raiders Dragons 18 14 201719CBRSGI
2017 19 15/07/2017 17:30:00 Newcastle NSW Knights Broncos 22 34 201719NEWBRI
2017 19 15/07/2017 19:30:00 Robina QLD Titans Sharks 30 10 201719GLDCRO
2017 19 16/07/2017 14:00:00 Brookvale NSW Sea Eagles Wests Tigers 28 16 201719MNLWST
2017 19 16/07/2017 16:00:00 Cairns QLD Rabbitohs Cowboys 10 23 201719SOUNQL
2017 20 20/07/2017 19:50:00 Milton QLD Broncos Bulldogs 42 12 201720BRICNB
2017 20 21/07/2017 18:00:00 Moore Park NSW Roosters Knights 28 4 201720SYDNEW
2017 20 21/07/2017 19:50:00 Woolooware NSW Sharks Rabbitohs 26 12 201720CROSOU
2017 20 22/07/2017 15:00:00 Penrith NSW Panthers Titans 24 16 201720PENGLD
2017 20 22/07/2017 17:30:00 Bruce ACT Raiders Storm 14 20 201720CBRMEL
2017 20 22/07/2017 19:30:00 Kirwan QLD Cowboys Warriors 24 12 201720NQLAKL
2017 20 23/07/2017 14:00:00 Wollongong NSW Dragons Sea Eagles 52 22 201720SGIMNL
2017 20 23/07/2017 16:00:00 Homebush NSW Wests Tigers Eels 16 17 201720WSTPAR
2017 21 27/07/2017 19:50:00 Penrith NSW Panthers Bulldogs 16 8 201721PENCNB
2017 21 28/07/2017 18:00:00 Penrose NZ Warriors Sharks 12 26 201721AKLCRO
2017 21 28/07/2017 19:50:00 Homebush NSW Eels Broncos 28 14 201721PARBRI
2017 21 29/07/2017 15:00:00 Newcastle NSW Knights Dragons 21 14 201721NEWSGI
2017 21 29/07/2017 17:30:00 Homebush NSW Rabbitohs Raiders 18 32 201721SOUCBR
2017 21 29/07/2017 19:30:00 Moore Park NSW Roosters Cowboys 22 16 201721SYDNQL
2017 21 30/07/2017 14:00:00 Melbourne VIC Storm Sea Eagles 40 6 201721MELMNL
2017 21 30/07/2017 16:00:00 Robina QLD Titans Wests Tigers 4 26 201721GLDWST
2017 22 03/08/2017 19:50:00 Homebush NSW Bulldogs Eels 4 20 201722CNBPAR
2017 22 04/08/2017 18:00:00 Moore Park NSW Dragons Rabbitohs 24 26 201722SGISOU
2017 22 04/08/2017 19:50:00 Kirwan QLD Cowboys Storm 8 26 201722NQLMEL
2017 22 05/08/2017 15:00:00 Newcastle NSW Knights Warriors 26 10 201722NEWAKL
2017 22 05/08/2017 17:30:00 Robina QLD Titans Broncos 0 54 201722GLDBRI
2017 22 05/08/2017 19:30:00 Woolooware NSW Sharks Raiders 12 30 201722CROCBR
2017 22 06/08/2017 14:00:00 Brookvale NSW Sea Eagles Roosters 36 18 201722MNLSYD
2017 22 06/08/2017 16:00:00 Penrith NSW Panthers Wests Tigers 28 14 201722PENWST
2017 23 10/08/2017 19:50:00 Homebush NSW Rabbitohs Bulldogs 28 14 201723SOUCNB
2017 23 11/08/2017 18:00:00 Homebush NSW Eels Knights 10 29 201723PARNEW
2017 23 11/08/2017 19:50:00 Milton QLD Broncos Sharks 32 10 201723BRICRO
2017 23 12/08/2017 15:00:00 Kogarah NSW Dragons Titans 42 16 201723SGIGLD
2017 23 12/08/2017 17:30:00 Melbourne VIC Storm Roosters 16 13 201723MELSYD
2017 23 12/08/2017 19:30:00 Penrith NSW Panthers Cowboys 24 16 201723PENNQL
2017 23 13/08/2017 14:00:00 Penrose NZ Warriors Raiders 16 36 201723AKLCBR
2017 23 13/08/2017 16:00:00 Lilyfield NSW Wests Tigers Sea Eagles 30 26 201723WSTMNL
2017 24 17/08/2017 19:50:00 Homebush NSW Eels Titans 30 8 201724PARGLD
2017 24 18/08/2017 18:00:00 Homebush NSW Rabbitohs Warriors 36 18 201724SOUAKL
2017 24 18/08/2017 19:50:00 Milton QLD Broncos Dragons 24 12 201724BRISGI
2017 24 19/08/2017 15:00:00 Newcastle NSW Knights Storm 12 44 201724NEWMEL
2017 24 19/08/2017 17:30:00 Moore Park NSW Roosters Wests Tigers 22 18 201724SYDWST
2017 24 19/08/2017 19:30:00 Kirwan QLD Cowboys Sharks 16 26 201724NQLCRO
2017 24 20/08/2017 14:00:00 Bruce ACT Raiders Panthers 22 26 201724CBRPEN
2017 24 20/08/2017 16:00:00 Homebush NSW Bulldogs Sea Eagles 30 16 201724CNBMNL
2017 25 24/08/2017 19:50:00 Milton QLD Broncos Eels 34 52 201725BRIPAR
2017 25 25/08/2017 18:00:00 Bruce ACT Raiders Knights 46 28 201725CBRNEW
2017 25 25/08/2017 19:50:00 Leumeah NSW Wests Tigers Cowboys 14 22 201725WSTNQL
2017 25 26/08/2017 15:00:00 Robina QLD Titans Bulldogs 14 26 201725GLDCNB
2017 25 26/08/2017 17:30:00 Melbourne VIC Storm Rabbitohs 64 6 201725MELSOU
2017 25 26/08/2017 19:30:00 Woolooware NSW Sharks Roosters 14 16 201725CROSYD
2017 25 27/08/2017 14:00:00 Penrose NZ Warriors Sea Eagles 21 22 201725AKLMNL
2017 25 27/08/2017 16:00:00 Penrith NSW Panthers Dragons 14 16 201725PENSGI
2017 26 31/08/2017 19:50:00 Kirwan QLD Cowboys Broncos 10 20 201726NQLBRI
2017 26 01/09/2017 19:50:00 Homebush NSW Eels Rabbitohs 22 16 201726PARSOU
2017 26 02/09/2017 15:00:00 Moore Park NSW Roosters Titans 20 16 201726SYDGLD
2017 26 02/09/2017 17:30:00 Brookvale NSW Sea Eagles Panthers 28 12 201726MNLPEN
2017 26 02/09/2017 19:30:00 Melbourne VIC Storm Raiders 32 6 201726MELCBR
2017 26 03/09/2017 14:00:00 Newcastle NSW Knights Sharks 18 26 201726NEWCRO
2017 26 03/09/2017 16:00:00 Homebush NSW Dragons Bulldogs 20 26 201726SGICNB
2017 26 03/09/2017 18:30:00 Lilyfield NSW Wests Tigers Warriors 28 16 201726WSTAKL
2017 F1 08/09/2017 19:55:00 Moore Park NSW Roosters Broncos 24 22 2017F1SYDBRI
2017 F1 09/09/2017 16:10:00 Melbourne VIC Storm Eels 18 16 2017F1MELPAR
2017 F1 09/09/2017 19:40:00 Moore Park NSW Sea Eagles Panthers 10 22 2017F1MNLPEN
2017 F1 10/09/2017 16:10:00 Moore Park NSW Sharks Cowboys 14 15 2017F1CRONQL
2017 F2 15/09/2017 20:15:00 Milton QLD Broncos Panthers 13 6 2017F2BRIPEN
2017 F2 16/09/2017 19:45:00 Homebush NSW Eels Cowboys 16 24 2017F2PARNQL
2017 F3 22/09/2017 20:15:00 Melbourne VIC Storm Broncos 30 0 2017F3MELBRI
2017 F3 23/09/2017 19:45:00 Moore Park NSW Roosters Cowboys 16 29 2017F3SYDNQL
2017 GF 01/10/2017 19:30:00 Homebush NSW Storm Cowboys 34 6 2017GFMELNQL
2018 1 08/03/2018 20:05:00 Kogarah NSW Dragons Broncos 34 12 201801SGIBRI
2018 1 09/03/2018 18:00:00 Newcastle NSW Knights Sea Eagles 19 18 201801NEWMNL
2018 1 09/03/2018 20:05:00 Kirwan QLD Cowboys Sharks 20 14 201801NQLCRO
2018 1 10/03/2018 16:30:00 Homebush NSW Wests Tigers Roosters 10 8 201801WSTSYD
2018 1 10/03/2018 19:00:00 Burswood WA Rabbitohs Warriors 20 32 201801SOUAKL
2018 1 10/03/2018 21:05:00 Burswood WA Bulldogs Storm 18 36 201801CNBMEL
2018 1 11/03/2018 16:10:00 Penrith NSW Panthers Eels 24 14 201801PENPAR
2018 1 11/03/2018 18:30:00 Robina QLD Titans Raiders 30 28 201801GLDCBR
2018 2 15/03/2018 20:05:00 Woolooware NSW Sharks Dragons 16 20 201802CROSGI
2018 2 16/03/2018 18:00:00 Moore Park NSW Roosters Bulldogs 30 12 201802SYDCNB
2018 2 16/03/2018 20:05:00 Milton QLD Broncos Cowboys 24 20 201802BRINQL
2018 2 17/03/2018 15:05:00 Penrose NZ Warriors Titans 20 8 201802AKLGLD
2018 2 17/03/2018 17:30:00 Penrith NSW Panthers Rabbitohs 18 14 201802PENSOU
2018 2 17/03/2018 19:35:00 Melbourne VIC Storm Wests Tigers 8 10 201802MELWST
2018 2 18/03/2018 16:10:00 Brookvale NSW Sea Eagles Eels 54 0 201802MNLPAR
2018 2 18/03/2018 18:30:00 Bruce ACT Raiders Knights 28 30 201802CBRNEW
2018 3 22/03/2018 20:05:00 Melbourne VIC Storm Cowboys 30 14 201803MELNQL
2018 3 23/03/2018 18:00:00 Homebush NSW Bulldogs Panthers 20 18 201803CNBPEN
2018 3 23/03/2018 20:05:00 Leumeah NSW Wests Tigers Broncos 7 9 201803WSTBRI
2018 3 24/03/2018 15:00:00 Bruce ACT Raiders Warriors 19 20 201803CBRAKL
2018 3 24/03/2018 17:30:00 Homebush NSW Rabbitohs Sea Eagles 34 6 201803SOUMNL
2018 3 24/03/2018 19:30:00 Homebush NSW Eels Sharks 4 14 201803PARCRO
2018 3 25/03/2018 16:10:00 Toowoomba QLD Titans Dragons 8 54 201803GLDSGI
2018 3 25/03/2018 18:30:00 Moore Park NSW Roosters Knights 38 8 201803SYDNEW
2018 4 29/03/2018 20:05:00 Kirwan QLD Cowboys Panthers 14 33 201804NQLPEN
2018 4 30/03/2018 16:10:00 Homebush NSW Rabbitohs Bulldogs 20 16 201804SOUCNB
2018 4 30/03/2018 20:05:00 Woolooware NSW Sharks Storm 14 4 201804CROMEL
2018 4 31/03/2018 17:30:00 Moore Park NSW Roosters Warriors 6 30 201804SYDAKL
2018 4 31/03/2018 19:30:00 Brookvale NSW Sea Eagles Raiders 32 16 201804MNLCBR
2018 4 01/04/2018 16:10:00 Wollongong NSW Dragons Knights 30 12 201804SGINEW
2018 4 01/04/2018 18:30:00 Milton QLD Broncos Titans 14 26 201804BRIGLD
2018 4 02/04/2018 16:00:00 Homebush NSW Wests Tigers Eels 30 20 201804WSTPAR
2018 5 05/04/2018 19:50:00 Bruce ACT Raiders Bulldogs 26 10 201805CBRCNB
2018 5 06/04/2018 18:00:00 Woolooware NSW Sharks Roosters 10 28 201805CROSYD
2018 5 06/04/2018 19:50:00 Kogarah NSW Dragons Rabbitohs 16 12 201805SGISOU
2018 5 07/04/2018 15:00:00 Penrose NZ Wests Tigers Storm 11 10 201805WSTMEL
2018 5 07/04/2018 17:30:00 Penrose NZ Warriors Cowboys 22 12 201805AKLNQL
2018 5 07/04/2018 19:35:00 Newcastle NSW Knights Broncos 15 10 201805NEWBRI
2018 5 08/04/2018 14:00:00 Gladstone QLD Titans Sea Eagles 32 20 201805GLDMNL
2018 5 08/04/2018 16:10:00 Homebush NSW Eels Panthers 6 12 201805PARPEN
2018 6 12/04/2018 19:50:00 Moore Park NSW Roosters Rabbitohs 14 26 201806SYDSOU
2018 6 13/04/2018 18:00:00 Melbourne VIC Storm Knights 40 14 201806MELNEW
2018 6 13/04/2018 19:55:00 Wollongong NSW Dragons Sharks 40 20 201806SGICRO
2018 6 14/04/2018 15:00:00 Penrose NZ Warriors Broncos 18 27 201806AKLBRI
2018 6 14/04/2018 17:30:00 Kirwan QLD Cowboys Bulldogs 10 27 201806NQLCNB
2018 6 14/04/2018 19:35:00 Bruce ACT Raiders Eels 18 2 201806CBRPAR
2018 6 15/04/2018 14:00:00 Penrith NSW Panthers Titans 35 12 201806PENGLD
2018 6 15/04/2018 16:10:00 Brookvale NSW Sea Eagles Wests Tigers 12 38 201806MNLWST
2018 7 19/04/2018 19:50:00 Homebush NSW Bulldogs Roosters 0 6 201807CNBSYD
2018 7 20/04/2018 18:00:00 Penrose NZ Warriors Dragons 20 12 201807AKLSGI
2018 7 20/04/2018 19:55:00 Milton QLD Broncos Storm 20 34 201807BRIMEL
2018 7 21/04/2018 15:00:00 Gosford NSW Rabbitohs Raiders 42 18 201807SOUCBR
2018 7 21/04/2018 17:30:00 Tamworth NSW Wests Tigers Knights 20 22 201807WSTNEW
2018 7 21/04/2018 19:35:00 Kirwan QLD Cowboys Titans 26 14 201807NQLGLD
2018 7 22/04/2018 14:00:00 Homebush NSW Eels Sea Eagles 44 10 201807PARMNL
2018 7 22/04/2018 16:10:00 Woolooware NSW Sharks Panthers 26 22 201807CROPEN
2018 8 25/04/2018 16:10:00 Moore Park NSW Dragons Roosters 24 8 201808SGISYD
2018 8 25/04/2018 19:00:00 Melbourne VIC Storm Warriors 50 10 201808MELAKL
2018 8 26/04/2018 19:50:00 Homebush NSW Rabbitohs Broncos 20 24 201808SOUBRI
2018 8 27/04/2018 18:00:00 Brookvale NSW Sea Eagles Knights 12 18 201808MNLNEW
2018 8 27/04/2018 19:55:00 Penrith NSW Panthers Bulldogs 22 14 201808PENCNB
2018 8 28/04/2018 17:30:00 Robina QLD Titans Sharks 9 10 201808GLDCRO
2018 8 28/04/2018 19:35:00 Kirwan QLD Cowboys Raiders 8 18 201808NQLCBR
2018 8 29/04/2018 16:10:00 Homebush NSW Eels Wests Tigers 24 22 201808PARWST
2018 9 03/05/2018 19:50:00 Milton QLD Broncos Bulldogs 22 20 201809BRICNB
2018 9 04/05/2018 18:00:00 Newcastle NSW Knights Rabbitohs 18 36 201809NEWSOU
2018 9 04/05/2018 19:55:00 Bathurst NSW Panthers Cowboys 20 26 201809PENNQL
2018 9 05/05/2018 15:00:00 Bruce ACT Raiders Titans 32 18 201809CBRGLD
2018 9 05/05/2018 17:30:00 Penrose NZ Warriors Wests Tigers 26 4 201809AKLWST
2018 9 05/05/2018 19:35:00 Woolooware NSW Sharks Eels 22 20 201809CROPAR
2018 9 06/05/2018 14:00:00 Kogarah NSW Dragons Storm 34 14 201809SGIMEL
2018 9 06/05/2018 16:10:00 Moore Park NSW Roosters Sea Eagles 22 20 201809SYDMNL
2018 10 10/05/2018 19:50:00 Lilyfield NSW Wests Tigers Cowboys 20 12 201810WSTNQL
2018 10 11/05/2018 18:00:00 Newcastle NSW Knights Panthers 18 29 201810NEWPEN
2018 10 11/05/2018 19:55:00 Homebush NSW Bulldogs Eels 20 12 201810CNBPAR
2018 10 12/05/2018 15:00:00 Penrose NZ Warriors Roosters 0 32 201810AKLSYD
2018 10 12/05/2018 17:30:00 Milton QLD Storm Titans 28 14 201810MELGLD
2018 10 12/05/2018 19:35:00 Milton QLD Sea Eagles Broncos 38 24 201810MNLBRI
2018 10 13/05/2018 14:00:00 Homebush NSW Rabbitohs Dragons 24 10 201810SOUSGI
2018 10 13/05/2018 16:10:00 Bruce ACT Raiders Sharks 16 24 201810CBRCRO
2018 11 17/05/2018 19:50:00 Penrith NSW Panthers Wests Tigers 16 2 201811PENWST
2018 11 18/05/2018 18:00:00 Homebush NSW Eels Warriors 14 24 201811PARAKL
2018 11 18/05/2018 19:55:00 Milton QLD Broncos Roosters 28 22 201811BRISYD
2018 11 19/05/2018 15:00:00 Robina QLD Titans Knights 33 26 201811GLDNEW
2018 11 19/05/2018 17:30:00 Kirwan QLD Cowboys Rabbitohs 19 20 201811NQLSOU
2018 11 19/05/2018 19:35:00 Melbourne VIC Storm Sea Eagles 4 24 201811MELMNL
2018 11 20/05/2018 14:00:00 Mudgee NSW Dragons Raiders 25 18 201811SGICBR
2018 11 20/05/2018 16:10:00 Woolooware NSW Sharks Bulldogs 22 16 201811CROCNB
2018 12 24/05/2018 19:50:00 Milton QLD Broncos Eels 18 10 201812BRIPAR
2018 12 25/05/2018 18:00:00 Bruce ACT Raiders Sea Eagles 21 20 201812CBRMNL
2018 12 25/05/2018 19:55:00 Kirwan QLD Cowboys Storm 6 7 201812NQLMEL
2018 12 26/05/2018 15:00:00 Gosford NSW Roosters Titans 34 14 201812SYDGLD
2018 12 26/05/2018 17:30:00 Penrose NZ Warriors Rabbitohs 10 30 201812AKLSOU
2018 12 26/05/2018 19:35:00 Penrith NSW Panthers Dragons 28 2 201812PENSGI
2018 12 27/05/2018 14:00:00 Newcastle NSW Knights Sharks 10 48 201812NEWCRO
2018 12 27/05/2018 16:10:00 Homebush NSW Wests Tigers Bulldogs 14 10 201812WSTCNB
2018 13 31/05/2018 19:50:00 Brookvale NSW Sea Eagles Cowboys 12 26 201813MNLNQL
2018 13 01/06/2018 19:55:00 Homebush NSW Rabbitohs Sharks 22 14 201813SOUCRO
2018 13 02/06/2018 19:35:00 Homebush NSW Eels Knights 4 30 201813PARNEW
2018 13 03/06/2018 16:10:00 Moore Park NSW Roosters Wests Tigers 16 14 201813SYDWST
2018 14 08/06/2018 18:00:00 Bruce ACT Raiders Panthers 22 23 201814CBRPEN
2018 14 08/06/2018 19:55:00 Robina QLD Titans Rabbitohs 16 18 201814GLDSOU
2018 14 09/06/2018 15:00:00 Addington NZ Sea Eagles Warriors 14 34 201814MNLAKL
2018 14 09/06/2018 17:30:00 Newcastle NSW Knights Roosters 16 18 201814NEWSYD
2018 14 09/06/2018 19:35:00 Marrara NT Eels Cowboys 20 14 201814PARNQL
2018 14 10/06/2018 14:00:00 Woolooware NSW Sharks Wests Tigers 24 16 201814CROWST
2018 14 10/06/2018 16:10:00 Melbourne VIC Storm Broncos 32 16 201814MELBRI
2018 14 11/06/2018 16:00:00 Homebush NSW Bulldogs Dragons 16 18 201814CNBSGI
2018 15 14/06/2018 19:50:00 Homebush NSW Eels Rabbitohs 24 42 201815PARSOU
2018 15 15/06/2018 18:00:00 Kirwan QLD Cowboys Warriors 16 23 201815NQLAKL
2018 15 15/06/2018 19:55:00 Moore Park NSW Roosters Panthers 32 6 201815SYDPEN
2018 15 16/06/2018 15:00:00 Belmore NSW Bulldogs Titans 10 32 201815CNBGLD
2018 15 16/06/2018 17:30:00 Wollongong NSW Dragons Sea Eagles 32 8 201815SGIMNL
2018 15 16/06/2018 19:35:00 Woolooware NSW Sharks Broncos 16 20 201815CROBRI
2018 15 17/06/2018 14:00:00 Newcastle NSW Knights Storm 10 28 201815NEWMEL
2018 15 17/06/2018 16:10:00 Leumeah NSW Wests Tigers Raiders 12 48 201815WSTCBR
2018 16 28/06/2018 19:50:00 Wollongong NSW Dragons Eels 20 18 201816SGIPAR
2018 16 29/06/2018 18:00:00 Penrose NZ Warriors Sharks 15 18 201816AKLCRO
2018 16 29/06/2018 19:55:00 Adelaide SA Roosters Storm 8 9 201816SYDMEL
2018 16 30/06/2018 15:00:00 Penrith NSW Panthers Sea Eagles 10 18 201816PENMNL
2018 16 30/06/2018 17:30:00 Newcastle NSW Knights Bulldogs 16 36 201816NEWCNB
2018 16 30/06/2018 19:35:00 Milton QLD Broncos Raiders 26 22 201816BRICBR
2018 16 01/07/2018 14:00:00 Lilyfield NSW Wests Tigers Titans 12 30 201816WSTGLD
2018 16 01/07/2018 16:10:00 Cairns QLD Rabbitohs Cowboys 21 20 201816SOUNQL
2018 17 05/07/2018 19:50:00 Melbourne VIC Storm Dragons 52 30 201817MELSGI
2018 17 06/07/2018 19:55:00 Penrith NSW Panthers Warriors 36 4 201817PENAKL
2018 17 07/07/2018 19:35:00 Belmore NSW Bulldogs Raiders 28 32 201817CNBCBR
2018 17 08/07/2018 16:10:00 Robina QLD Titans Broncos 0 34 201817GLDBRI
2018 18 13/07/2018 18:00:00 Penrith NSW Panthers Sharks 12 24 201818PENCRO
2018 18 13/07/2018 19:55:00 Newcastle NSW Knights Eels 18 16 201818NEWPAR
2018 18 14/07/2018 15:00:00 Homebush NSW Bulldogs Rabbitohs 6 24 201818CNBSOU
2018 18 14/07/2018 17:30:00 Brookvale NSW Sea Eagles Storm 13 14 201818MNLMEL
2018 18 14/07/2018 19:35:00 Bruce ACT Raiders Cowboys 38 12 201818CBRNQL
2018 18 15/07/2018 14:00:00 Milton QLD Broncos Warriors 6 26 201818BRIAKL
2018 18 15/07/2018 16:10:00 Kogarah NSW Dragons Wests Tigers 16 20 201818SGIWST
2018 18 15/07/2018 18:30:00 Robina QLD Titans Roosters 12 20 201818GLDSYD
2018 19 19/07/2018 19:50:00 Homebush NSW Eels Bulldogs 14 8 201819PARCNB
2018 19 20/07/2018 18:00:00 Woolooware NSW Sharks Raiders 28 24 201819CROCBR
2018 19 20/07/2018 19:55:00 Milton QLD Broncos Panthers 50 18 201819BRIPEN
2018 19 21/07/2018 15:00:00 Newcastle NSW Knights Titans 30 24 201819NEWGLD
2018 19 21/07/2018 17:30:00 Homebush NSW Wests Tigers Rabbitohs 22 6 201819WSTSOU
2018 19 21/07/2018 19:35:00 Kirwan QLD Cowboys Dragons 10 24 201819NQLSGI
2018 19 22/07/2018 14:00:00 Penrose NZ Warriors Storm 6 12 201819AKLMEL
2018 19 22/07/2018 16:10:00 Brookvale NSW Sea Eagles Roosters 24 56 201819MNLSYD
2018 20 26/07/2018 19:50:00 Milton QLD Broncos Sharks 12 10 201820BRICRO
2018 20 27/07/2018 18:00:00 Kirwan QLD Cowboys Knights 20 18 201820NQLNEW
2018 20 27/07/2018 19:55:00 Homebush NSW Bulldogs Wests Tigers 16 4 201820CNBWST
2018 20 28/07/2018 15:00:00 Brookvale NSW Sea Eagles Panthers 24 28 201820MNLPEN
2018 20 28/07/2018 17:30:00 Homebush NSW Rabbitohs Eels 26 20 201820SOUPAR
2018 20 28/07/2018 19:35:00 Melbourne VIC Storm Raiders 44 10 201820MELCBR
2018 20 29/07/2018 14:00:00 Robina QLD Titans Warriors 36 12 201820GLDAKL
2018 20 29/07/2018 16:10:00 Moore Park NSW Roosters Dragons 36 18 201820SYDSGI
2018 21 02/08/2018 19:50:00 Homebush NSW Bulldogs Broncos 36 22 201821CNBBRI
2018 21 03/08/2018 18:00:00 Newcastle NSW Knights Wests Tigers 16 25 201821NEWWST
2018 21 03/08/2018 19:55:00 Homebush NSW Rabbitohs Storm 30 20 201821SOUMEL
2018 21 04/08/2018 15:00:00 Wollongong NSW Dragons Warriors 12 18 201821SGIAKL
2018 21 04/08/2018 17:30:00 Homebush NSW Eels Titans 28 12 201821PARGLD
2018 21 04/08/2018 19:35:00 Moore Park NSW Roosters Cowboys 26 20 201821SYDNQL
2018 21 05/08/2018 14:00:00 Woolooware NSW Sharks Sea Eagles 32 33 201821CROMNL
2018 21 05/08/2018 16:10:00 Penrith NSW Panthers Raiders 40 31 201821PENCBR
2018 22 09/08/2018 19:50:00 Kirwan QLD Cowboys Broncos 34 30 201822NQLBRI
2018 22 10/08/2018 18:00:00 Penrose NZ Warriors Knights 20 4 201822AKLNEW
2018 22 10/08/2018 19:55:00 Homebush NSW Rabbitohs Roosters 14 18 201822SOUSYD
2018 22 11/08/2018 15:00:00 Robina QLD Titans Panthers 16 17 201822GLDPEN
2018 22 11/08/2018 17:30:00 Penrith NSW Sea Eagles Bulldogs 18 6 201822MNLCNB
2018 22 11/08/2018 19:35:00 Homebush NSW Eels Dragons 40 4 201822PARSGI
2018 22 12/08/2018 14:00:00 Bruce ACT Raiders Wests Tigers 20 22 201822CBRWST
2018 22 12/08/2018 16:10:00 Melbourne VIC Storm Sharks 14 17 201822MELCRO
2018 23 16/08/2018 19:50:00 Milton QLD Broncos Rabbitohs 38 18 201823BRISOU
2018 23 17/08/2018 18:00:00 Brookvale NSW Sea Eagles Titans 34 42 201823MNLGLD
2018 23 17/08/2018 19:55:00 Melbourne VIC Storm Eels 20 4 201823MELPAR
2018 23 18/08/2018 15:00:00 Penrith NSW Panthers Knights 12 20 201823PENNEW
2018 23 18/08/2018 17:30:00 Lilyfield NSW Wests Tigers Dragons 10 20 201823WSTSGI
2018 23 18/08/2018 19:35:00 Woolooware NSW Sharks Cowboys 28 16 201823CRONQL
2018 23 19/08/2018 14:00:00 Homebush NSW Bulldogs Warriors 27 26 201823CNBAKL
2018 23 19/08/2018 16:10:00 Bruce ACT Raiders Roosters 14 12 201823CBRSYD
2018 24 23/08/2018 19:50:00 Leumeah NSW Wests Tigers Sea Eagles 22 20 201824WSTMNL
2018 24 24/08/2018 18:00:00 Penrose NZ Warriors Panthers 36 16 201824AKLPEN
2018 24 24/08/2018 19:55:00 Kirwan QLD Cowboys Eels 44 6 201824NQLPAR
2018 24 25/08/2018 15:00:00 Bruce ACT Raiders Rabbitohs 24 12 201824CBRSOU
2018 24 25/08/2018 17:30:00 Robina QLD Titans Storm 8 10 201824GLDMEL
2018 24 25/08/2018 19:35:00 Moore Park NSW Roosters Broncos 8 22 201824SYDBRI
2018 24 26/08/2018 14:00:00 Woolooware NSW Sharks Knights 38 12 201824CRONEW
2018 24 26/08/2018 16:10:00 Kogarah NSW Dragons Bulldogs 0 38 201824SGICNB
2018 25 30/08/2018 19:50:00 Homebush NSW Rabbitohs Wests Tigers 51 10 201825SOUWST
2018 25 31/08/2018 18:00:00 Penrose NZ Warriors Raiders 20 16 201825AKLCBR
2018 25 31/08/2018 19:55:00 Melbourne VIC Storm Panthers 16 22 201825MELPEN
2018 25 01/09/2018 15:00:00 Newcastle NSW Knights Dragons 14 24 201825NEWSGI
2018 25 01/09/2018 17:30:00 Robina QLD Titans Cowboys 26 30 201825GLDNQL
2018 25 01/09/2018 19:45:00 Homebush NSW Eels Roosters 10 44 201825PARSYD
2018 25 02/09/2018 14:00:00 Homebush NSW Bulldogs Sharks 18 30 201825CNBCRO
2018 25 02/09/2018 16:10:00 Milton QLD Broncos Sea Eagles 48 16 201825BRIMNL
2018 F1 07/09/2018 19:40:00 Melbourne VIC Storm Rabbitohs 29 28 2018F1MELSOU
2018 F1 08/09/2018 17:30:00 Homebush NSW Panthers Warriors 27 12 2018F1PENAKL
2018 F1 08/09/2018 19:40:00 Moore Park NSW Roosters Sharks 21 12 2018F1SYDCRO
2018 F1 09/09/2018 16:00:00 Milton QLD Broncos Dragons 18 48 2018F1BRISGI
2018 F2 14/09/2018 19:40:00 Moore Park NSW Sharks Panthers 21 20 2018F2CROPEN
2018 F2 15/09/2018 19:40:00 Homebush NSW Rabbitohs Dragons 13 12 2018F2SOUSGI
2018 F3 21/09/2018 19:40:00 Melbourne VIC Storm Sharks 22 6 2018F3MELCRO
2018 F3 22/09/2018 19:40:00 Moore Park NSW Roosters Rabbitohs 12 4 2018F3SYDSOU
2018 GF 30/09/2018 19:20:00 Homebush NSW Storm Roosters 6 21 2018GFMELSYD
2019 1 14/03/2019 19:50:00 Melbourne VIC Storm Broncos 22 12 201901MELBRI
2019 1 15/03/2019 18:00:00 Newcastle NSW Knights Sharks 14 8 201901NEWCRO
2019 1 15/03/2019 19:55:00 Moore Park NSW Roosters Rabbitohs 16 26 201901SYDSOU
2019 1 16/03/2019 15:00:00 Penrose NZ Warriors Bulldogs 40 6 201901AKLCNB
2019 1 16/03/2019 17:30:00 Lilyfield NSW Wests Tigers Sea Eagles 20 6 201901WSTMNL
2019 1 16/03/2019 19:35:00 Kirwan QLD Cowboys Dragons 24 12 201901NQLSGI
2019 1 17/03/2019 16:05:00 Penrith NSW Panthers Eels 12 20 201901PENPAR
2019 1 17/03/2019 18:10:00 Robina QLD Titans Raiders 0 21 201901GLDCBR
2019 2 21/03/2019 20:05:00 Kogarah NSW Dragons Rabbitohs 18 34 201902SGISOU
2019 2 22/03/2019 18:00:00 Bruce ACT Raiders Storm 10 22 201902CBRMEL
2019 2 22/03/2019 20:05:00 Milton QLD Broncos Cowboys 29 10 201902BRINQL
2019 2 23/03/2019 15:00:00 Woolooware NSW Sharks Titans 20 6 201902CROGLD
2019 2 23/03/2019 17:30:00 Newcastle NSW Knights Panthers 14 16 201902NEWPEN
2019 2 23/03/2019 19:35:00 Brookvale NSW Sea Eagles Roosters 18 26 201902MNLSYD
2019 2 24/03/2019 16:05:00 Homebush NSW Bulldogs Eels 16 36 201902CNBPAR
2019 2 24/03/2019 18:10:00 Leumeah NSW Wests Tigers Warriors 34 6 201902WSTAKL
2019 3 28/03/2019 20:05:00 Milton QLD Broncos Dragons 24 25 201903BRISGI
2019 3 29/03/2019 18:00:00 Bruce ACT Raiders Knights 17 10 201903CBRNEW
2019 3 29/03/2019 20:05:00 Homebush NSW Eels Roosters 18 32 201903PARSYD
2019 3 30/03/2019 15:00:00 Addington NZ Sea Eagles Warriors 46 12 201903MNLAKL
2019 3 30/03/2019 17:30:00 Kirwan QLD Cowboys Sharks 16 42 201903NQLCRO
2019 3 30/03/2019 19:35:00 Bathurst NSW Panthers Storm 2 32 201903PENMEL
2019 3 31/03/2019 16:05:00 Leumeah NSW Wests Tigers Bulldogs 8 22 201903WSTCNB
2019 3 31/03/2019 18:10:00 Homebush NSW Rabbitohs Titans 28 20 201903SOUGLD
2019 4 04/04/2019 20:05:00 Moore Park NSW Roosters Broncos 36 4 201904SYDBRI
2019 4 05/04/2019 18:00:00 Penrose NZ Warriors Titans 26 10 201904AKLGLD
2019 4 05/04/2019 20:05:00 Penrith NSW Panthers Wests Tigers 9 8 201904PENWST
2019 4 06/04/2019 15:00:00 Brookvale NSW Sea Eagles Rabbitohs 13 12 201904MNLSOU
2019 4 06/04/2019 17:30:00 Kirwan QLD Cowboys Raiders 12 30 201904NQLCBR
2019 4 06/04/2019 19:35:00 Homebush NSW Eels Sharks 24 12 201904PARCRO
2019 4 07/04/2019 16:05:00 Melbourne VIC Storm Bulldogs 18 16 201904MELCNB
2019 4 07/04/2019 18:10:00 Newcastle NSW Knights Dragons 12 13 201904NEWSGI
2019 5 11/04/2019 19:50:00 Milton QLD Broncos Wests Tigers 16 22 201905BRIWST
2019 5 12/04/2019 18:00:00 Robina QLD Titans Panthers 30 24 201905GLDPEN
2019 5 12/04/2019 19:55:00 Kirwan QLD Cowboys Storm 12 18 201905NQLMEL
2019 5 13/04/2019 15:00:00 Bokarina QLD Rabbitohs Warriors 28 24 201905SOUAKL
2019 5 13/04/2019 17:30:00 Newcastle NSW Knights Sea Eagles 18 26 201905NEWMNL
2019 5 13/04/2019 19:35:00 Woolooware NSW Sharks Roosters 16 30 201905CROSYD
2019 5 14/04/2019 16:05:00 Kogarah NSW Dragons Bulldogs 40 4 201905SGICNB
2019 5 14/04/2019 18:10:00 Bruce ACT Raiders Eels 19 0 201905CBRPAR
2019 6 18/04/2019 19:50:00 Woolooware NSW Sharks Panthers 24 20 201906CROPEN
2019 6 19/04/2019 16:05:00 Homebush NSW Bulldogs Rabbitohs 6 14 201906CNBSOU
2019 6 19/04/2019 19:55:00 Melbourne VIC Storm Roosters 20 21 201906MELSYD
2019 6 20/04/2019 17:30:00 Penrose NZ Warriors Cowboys 10 17 201906AKLNQL
2019 6 20/04/2019 19:35:00 Wollongong NSW Dragons Sea Eagles 12 10 201906SGIMNL
2019 6 21/04/2019 14:00:00 Robina QLD Titans Knights 38 14 201906GLDNEW
2019 6 21/04/2019 16:05:00 Bruce ACT Raiders Broncos 26 22 201906CBRBRI
2019 6 22/04/2019 16:00:00 Parramatta NSW Eels Wests Tigers 51 6 201906PARWST
2019 7 25/04/2019 16:05:00 Moore Park NSW Roosters Dragons 20 10 201907SYDSGI
2019 7 25/04/2019 19:50:00 Melbourne VIC Storm Warriors 13 12 201907MELAKL
2019 7 26/04/2019 18:00:00 Homebush NSW Bulldogs Cowboys 24 12 201907CNBNQL
2019 7 26/04/2019 19:55:00 Penrith NSW Panthers Rabbitohs 18 22 201907PENSOU
2019 7 27/04/2019 17:30:00 Tamworth NSW Wests Tigers Titans 30 14 201907WSTGLD
2019 7 27/04/2019 19:35:00 Milton QLD Broncos Sharks 29 6 201907BRICRO
2019 7 28/04/2019 14:00:00 Brookvale NSW Sea Eagles Raiders 24 20 201907MNLCBR
2019 7 28/04/2019 16:05:00 Newcastle NSW Knights Eels 28 14 201907NEWPAR
2019 8 02/05/2019 19:50:00 Homebush NSW Rabbitohs Broncos 38 6 201908SOUBRI
2019 8 03/05/2019 18:00:00 Kirwan QLD Cowboys Titans 28 14 201908NQLGLD
2019 8 03/05/2019 19:55:00 Woolooware NSW Sharks Storm 20 18 201908CROMEL
2019 8 04/05/2019 15:00:00 Wagga Wagga NSW Raiders Panthers 30 12 201908CBRPEN
2019 8 04/05/2019 17:30:00 Brookvale NSW Sea Eagles Bulldogs 18 10 201908MNLCNB
2019 8 04/05/2019 19:35:00 Moore Park NSW Roosters Wests Tigers 42 12 201908SYDWST
2019 8 05/05/2019 14:00:00 Penrose NZ Warriors Knights 18 36 201908AKLNEW
2019 8 05/05/2019 16:05:00 Parramatta NSW Eels Dragons 32 18 201908PARSGI
2019 9 09/05/2019 19:50:00 Milton QLD Titans Sharks 18 26 201909GLDCRO
2019 9 10/05/2019 18:00:00 Milton QLD Wests Tigers Panthers 30 4 201909WSTPEN
2019 9 10/05/2019 20:05:00 Milton QLD Sea Eagles Broncos 10 26 201909MNLBRI
2019 9 11/05/2019 15:00:00 Milton QLD Bulldogs Knights 10 22 201909CNBNEW
2019 9 11/05/2019 17:30:00 Milton QLD Warriors Dragons 26 18 201909AKLSGI
2019 9 11/05/2019 19:35:00 Milton QLD Storm Eels 64 10 201909MELPAR
2019 9 12/05/2019 14:00:00 Milton QLD Roosters Raiders 30 24 201909SYDCBR
2019 9 12/05/2019 16:05:00 Milton QLD Rabbitohs Cowboys 32 16 201909SOUNQL
2019 10 16/05/2019 19:50:00 Melbourne VIC Storm Wests Tigers 24 22 201910MELWST
2019 10 17/05/2019 18:00:00 Penrith NSW Panthers Warriors 10 30 201910PENAKL
2019 10 17/05/2019 19:55:00 Milton QLD Broncos Roosters 15 10 201910BRISYD
2019 10 18/05/2019 15:00:00 Robina QLD Titans Bulldogs 16 22 201910GLDCNB
2019 10 18/05/2019 17:30:00 Kirwan QLD Cowboys Eels 17 10 201910NQLPAR
2019 10 18/05/2019 19:35:00 Bruce ACT Raiders Rabbitohs 12 16 201910CBRSOU
2019 10 19/05/2019 14:00:00 Mudgee NSW Dragons Knights 12 45 201910SGINEW
2019 10 19/05/2019 16:05:00 Woolooware NSW Sharks Sea Eagles 14 24 201910CROMNL
2019 11 23/05/2019 19:50:00 Parramatta NSW Eels Panthers 10 16 201911PARPEN
2019 11 24/05/2019 18:00:00 Brookvale NSW Sea Eagles Titans 18 36 201911MNLGLD
2019 11 24/05/2019 19:55:00 Newcastle NSW Knights Roosters 38 12 201911NEWSYD
2019 11 25/05/2019 15:00:00 Bruce ACT Raiders Cowboys 16 22 201911CBRNQL
2019 11 25/05/2019 17:30:00 Penrose NZ Warriors Broncos 2 8 201911AKLBRI
2019 11 25/05/2019 19:35:00 Homebush NSW Rabbitohs Wests Tigers 32 16 201911SOUWST
2019 11 26/05/2019 14:00:00 Belmore NSW Bulldogs Storm 6 28 201911CNBMEL
2019 11 26/05/2019 16:05:00 Wollongong NSW Dragons Sharks 9 22 201911SGICRO
2019 12 30/05/2019 19:50:00 Penrith NSW Panthers Sea Eagles 15 12 201912PENMNL
2019 12 31/05/2019 19:55:00 Parramatta NSW Eels Rabbitohs 26 14 201912PARSOU
2019 12 01/06/2019 19:35:00 Homebush NSW Bulldogs Raiders 10 12 201912CNBCBR
2019 12 02/06/2019 16:05:00 Robina QLD Titans Cowboys 4 6 201912GLDNQL
2019 13 07/06/2019 18:00:00 Homebush NSW Rabbitohs Knights 12 20 201913SOUNEW
2019 13 07/06/2019 19:55:00 Parramatta NSW Wests Tigers Raiders 0 28 201913WSTCBR
2019 13 08/06/2019 15:00:00 Penrose NZ Warriors Storm 10 32 201913AKLMEL
2019 13 08/06/2019 17:30:00 Woolooware NSW Sharks Eels 42 22 201913CROPAR
2019 13 08/06/2019 19:35:00 Kirwan QLD Cowboys Sea Eagles 20 22 201913NQLMNL
2019 13 09/06/2019 14:00:00 Milton QLD Broncos Titans 18 26 201913BRIGLD
2019 13 09/06/2019 16:05:00 Penrith NSW Panthers Roosters 19 10 201913PENSYD
2019 13 10/06/2019 16:00:00 Homebush NSW Bulldogs Dragons 12 36 201913CNBSGI
2019 14 13/06/2019 19:50:00 Bruce ACT Raiders Sharks 22 20 201914CBRCRO
2019 14 14/06/2019 18:00:00 Robina QLD Titans Warriors 20 24 201914GLDAKL
2019 14 14/06/2019 19:55:00 Kirwan QLD Cowboys Wests Tigers 26 27 201914NQLWST
2019 14 15/06/2019 15:00:00 Melbourne VIC Storm Knights 34 4 201914MELNEW
2019 14 15/06/2019 17:30:00 Homebush NSW Rabbitohs Panthers 18 19 201914SOUPEN
2019 14 15/06/2019 19:30:00 Parramatta NSW Eels Broncos 38 10 201914PARBRI
2019 14 16/06/2019 14:00:00 Brookvale NSW Sea Eagles Dragons 34 14 201914MNLSGI
2019 14 16/06/2019 16:00:00 Moore Park NSW Roosters Bulldogs 38 12 201914SYDCNB
2019 15 27/06/2019 19:50:00 Parramatta NSW Wests Tigers Rabbitohs 14 9 201915WSTSOU
2019 15 28/06/2019 18:00:00 Wollongong NSW Dragons Cowboys 22 14 201915SGINQL
2019 15 28/06/2019 19:55:00 Adelaide SA Roosters Storm 12 14 201915SYDMEL
2019 15 29/06/2019 15:00:00 Robina QLD Titans Sea Eagles 12 30 201915GLDMNL
2019 15 29/06/2019 17:30:00 Newcastle NSW Knights Broncos 26 12 201915NEWBRI
2019 15 29/06/2019 19:35:00 Marrara NT Eels Raiders 22 16 201915PARCBR
2019 15 30/06/2019 14:00:00 Penrose NZ Warriors Panthers 18 19 201915AKLPEN
2019 15 30/06/2019 16:05:00 Homebush NSW Bulldogs Sharks 14 12 201915CNBCRO
2019 16 04/07/2019 19:50:00 Wollongong NSW Dragons Storm 14 16 201916SGIMEL
2019 16 05/07/2019 19:55:00 Parramatta NSW Wests Tigers Roosters 16 24 201916WSTSYD
2019 16 06/07/2019 19:35:00 Newcastle NSW Knights Warriors 20 24 201916NEWAKL
2019 16 07/07/2019 16:05:00 Woolooware NSW Sharks Broncos 22 24 201916CROBRI
2019 17 12/07/2019 18:00:00 Penrith NSW Panthers Titans 21 2 201917PENGLD
2019 17 12/07/2019 19:55:00 Newcastle NSW Knights Bulldogs 14 20 201917NEWCNB
2019 17 13/07/2019 15:00:00 Homebush NSW Rabbitohs Sea Eagles 21 20 201917SOUMNL
2019 17 13/07/2019 17:30:00 Milton QLD Broncos Warriors 18 18 201917BRIAKL
2019 17 13/07/2019 19:35:00 Melbourne VIC Storm Sharks 40 16 201917MELCRO
2019 17 14/07/2019 14:00:00 Gosford NSW Roosters Cowboys 12 15 201917SYDNQL
2019 17 14/07/2019 16:05:00 Parramatta NSW Wests Tigers Eels 18 30 201917WSTPAR
2019 17 14/07/2019 18:10:00 Wollongong NSW Dragons Raiders 14 36 201917SGICBR
2019 18 18/07/2019 19:50:00 Milton QLD Broncos Bulldogs 28 6 201918BRICNB
2019 18 19/07/2019 18:00:00 Wellington NZ Warriors Sharks 19 18 201918AKLCRO
2019 18 19/07/2019 19:55:00 Penrith NSW Panthers Dragons 40 18 201918PENSGI
2019 18 20/07/2019 15:00:00 Moore Park NSW Roosters Knights 48 10 201918SYDNEW
2019 18 20/07/2019 17:30:00 Bruce ACT Raiders Wests Tigers 20 12 201918CBRWST
2019 18 20/07/2019 19:35:00 Kirwan QLD Cowboys Rabbitohs 18 30 201918NQLSOU
2019 18 21/07/2019 14:00:00 Robina QLD Titans Storm 18 38 201918GLDMEL
2019 18 21/07/2019 16:05:00 Brookvale NSW Sea Eagles Eels 36 24 201918MNLPAR
2019 19 25/07/2019 19:50:00 Woolooware NSW Sharks Cowboys 16 14 201919CRONQL
2019 19 26/07/2019 18:00:00 Newcastle NSW Knights Wests Tigers 26 28 201919NEWWST
2019 19 26/07/2019 19:55:00 Homebush NSW Rabbitohs Dragons 20 16 201919SOUSGI
2019 19 27/07/2019 15:00:00 Parramatta NSW Eels Warriors 24 22 201919PARAKL
2019 19 27/07/2019 17:30:00 Robina QLD Titans Broncos 12 34 201919GLDBRI
2019 19 27/07/2019 19:35:00 Melbourne VIC Storm Sea Eagles 10 11 201919MELMNL
2019 19 28/07/2019 14:00:00 Homebush NSW Bulldogs Roosters 12 20 201919CNBSYD
2019 19 28/07/2019 16:05:00 Penrith NSW Panthers Raiders 18 30 201919PENCBR
2019 20 01/08/2019 19:50:00 Lilyfield NSW Wests Tigers Cowboys 28 4 201920WSTNQL
2019 20 02/08/2019 18:00:00 Penrose NZ Warriors Raiders 12 46 201920AKLCBR
2019 20 02/08/2019 19:55:00 Milton QLD Broncos Storm 4 40 201920BRIMEL
2019 20 03/08/2019 15:00:00 Brookvale NSW Sea Eagles Knights 30 6 201920MNLNEW
2019 20 03/08/2019 17:30:00 Parramatta NSW Bulldogs Panthers 16 8 201920CNBPEN
2019 20 03/08/2019 19:35:00 Woolooware NSW Sharks Rabbitohs 39 24 201920CROSOU
2019 20 04/08/2019 14:00:00 Moore Park NSW Roosters Titans 58 6 201920SYDGLD
2019 20 04/08/2019 16:05:00 Kogarah NSW Dragons Eels 4 12 201920SGIPAR
2019 21 08/08/2019 19:50:00 Kirwan QLD Cowboys Broncos 14 18 201921NQLBRI
2019 21 09/08/2019 18:00:00 Penrose NZ Warriors Sea Eagles 24 16 201921AKLMNL
2019 21 09/08/2019 19:55:00 Penrith NSW Panthers Sharks 26 20 201921PENCRO
2019 21 10/08/2019 15:00:00 Kogarah NSW Dragons Titans 40 28 201921SGIGLD
2019 21 10/08/2019 17:30:00 Parramatta NSW Eels Knights 20 14 201921PARNEW
2019 21 10/08/2019 19:35:00 Homebush NSW Bulldogs Wests Tigers 18 16 201921CNBWST
2019 21 11/08/2019 14:00:00 Bruce ACT Raiders Roosters 18 22 201921CBRSYD
2019 21 11/08/2019 16:05:00 Gosford NSW Rabbitohs Storm 16 26 201921SOUMEL
2019 22 15/08/2019 19:50:00 Brookvale NSW Sea Eagles Wests Tigers 32 12 201922MNLWST
2019 22 16/08/2019 18:00:00 Robina QLD Titans Eels 12 36 201922GLDPAR
2019 22 16/08/2019 19:55:00 Milton QLD Broncos Panthers 24 12 201922BRIPEN
2019 22 17/08/2019 15:00:00 Newcastle NSW Knights Cowboys 42 6 201922NEWNQL
2019 22 17/08/2019 17:30:00 Melbourne VIC Storm Raiders 18 22 201922MELCBR
2019 22 17/08/2019 19:35:00 Homebush NSW Rabbitohs Bulldogs 6 14 201922SOUCNB
2019 22 18/08/2019 14:00:00 Moore Park NSW Roosters Warriors 42 6 201922SYDAKL
2019 22 18/08/2019 16:05:00 Woolooware NSW Sharks Dragons 18 12 201922CROSGI
2019 23 22/08/2019 19:50:00 Parramatta NSW Eels Bulldogs 6 12 201923PARCNB
2019 23 23/08/2019 18:00:00 Kirwan QLD Cowboys Panthers 24 10 201923NQLPEN
2019 23 23/08/2019 19:55:00 Milton QLD Broncos Rabbitohs 20 22 201923BRISOU
2019 23 24/08/2019 15:00:00 Woolooware NSW Sharks Warriors 42 16 201923CROAKL
2019 23 24/08/2019 17:30:00 Leumeah NSW Wests Tigers Knights 46 4 201923WSTNEW
2019 23 24/08/2019 19:35:00 Kogarah NSW Dragons Roosters 12 34 201923SGISYD
2019 23 25/08/2019 14:00:00 Melbourne VIC Storm Titans 24 8 201923MELGLD
2019 23 25/08/2019 16:05:00 Bruce ACT Raiders Sea Eagles 14 18 201923CBRMNL
2019 24 29/08/2019 19:50:00 Kirwan QLD Cowboys Bulldogs 15 8 201924NQLCNB
2019 24 30/08/2019 18:00:00 Penrose NZ Warriors Rabbitohs 10 31 201924AKLSOU
2019 24 30/08/2019 19:55:00 Milton QLD Broncos Eels 17 16 201924BRIPAR
2019 24 31/08/2019 15:00:00 Newcastle NSW Knights Titans 38 4 201924NEWGLD
2019 24 31/08/2019 17:30:00 Brookvale NSW Sea Eagles Storm 6 36 201924MNLMEL
2019 24 31/08/2019 19:35:00 Moore Park NSW Roosters Panthers 22 6 201924SYDPEN
2019 24 01/09/2019 14:00:00 Woolooware NSW Sharks Raiders 14 15 201924CROCBR
2019 24 01/09/2019 16:05:00 Moore Park NSW Dragons Wests Tigers 14 42 201924SGIWST
2019 25 05/09/2019 19:50:00 Homebush NSW Rabbitohs Roosters 16 10 201925SOUSYD
2019 25 06/09/2019 18:00:00 Parramatta NSW Eels Sea Eagles 32 16 201925PARMNL
2019 25 06/09/2019 19:55:00 Melbourne VIC Storm Cowboys 24 16 201925MELNQL
2019 25 07/09/2019 15:00:00 Bruce ACT Raiders Warriors 20 24 201925CBRAKL
2019 25 07/09/2019 17:30:00 Homebush NSW Bulldogs Broncos 30 14 201925CNBBRI
2019 25 07/09/2019 19:35:00 Robina QLD Titans Dragons 16 24 201925GLDSGI
2019 25 08/09/2019 14:00:00 Lilyfield NSW Wests Tigers Sharks 8 25 201925WSTCRO
2019 25 08/09/2019 16:05:00 Penrith NSW Panthers Knights 54 10 201925PENNEW
2019 F1 13/09/2019 19:50:00 Moore Park NSW Roosters Rabbitohs 30 6 2019F1SYDSOU
2019 F1 14/09/2019 17:40:00 Melbourne VIC Storm Raiders 10 12 2019F1MELCBR
2019 F1 14/09/2019 19:50:00 Brookvale NSW Sea Eagles Sharks 28 16 2019F1MNLCRO
2019 F1 15/09/2019 16:05:00 Parramatta NSW Eels Broncos 58 0 2019F1PARBRI
2019 F2 20/09/2019 19:50:00 Homebush NSW Rabbitohs Sea Eagles 34 26 2019F2SOUMNL
2019 F2 21/09/2019 19:50:00 Melbourne VIC Storm Eels 32 0 2019F2MELPAR
2019 F3 27/09/2019 19:50:00 Bruce ACT Raiders Rabbitohs 16 10 2019F3CBRSOU
2019 F3 28/09/2019 19:50:00 Moore Park NSW Roosters Storm 14 6 2019F3SYDMEL
2019 GF 06/10/2019 19:30:00 Homebush NSW Roosters Raiders 14 8 2019GFSYDCBR
2020 1 12/03/2020 20:05:00 Parramatta NSW Eels Bulldogs 8 2 202001PARCNB
2020 1 13/03/2020 18:00:00 Bruce ACT Raiders Titans 24 6 202001CBRGLD
2020 1 13/03/2020 20:05:00 Townsville QLD Cowboys Broncos 21 28 202001NQLBRI
2020 1 14/03/2020 15:00:00 Newcastle NSW Knights Warriors 20 0 202001NEWAKL
2020 1 14/03/2020 17:30:00 Homebush NSW Rabbitohs Sharks 22 18 202001SOUCRO
2020 1 14/03/2020 19:35:00 Penrith NSW Panthers Roosters 20 14 202001PENSYD
2020 1 15/03/2020 16:05:00 Brookvale NSW Sea Eagles Storm 4 18 202001MNLMEL
2020 1 15/03/2020 18:15:00 Wollongong NSW Dragons Wests Tigers 14 24 202001SGIWST
2020 2 19/03/2020 20:05:00 Homebush NSW Bulldogs Cowboys 16 24 202002CNBNQL
2020 2 20/03/2020 18:00:00 Kogarah NSW Dragons Panthers 28 32 202002SGIPEN
2020 2 20/03/2020 20:05:00 Milton QLD Broncos Rabbitohs 22 18 202002BRISOU
2020 2 21/03/2020 15:00:00 Robina QLD Warriors Raiders 6 20 202002AKLCBR
2020 2 21/03/2020 17:30:00 Lilyfield NSW Roosters Sea Eagles 8 9 202002SYDMNL
2020 2 21/03/2020 19:35:00 Kogarah NSW Sharks Storm 10 12 202002CROMEL
2020 2 22/03/2020 16:05:00 Lilyfield NSW Wests Tigers Knights 24 42 202002WSTNEW
2020 2 22/03/2020 18:15:00 Robina QLD Titans Eels 6 46 202002GLDPAR
2020 3 28/05/2020 19:50:00 Milton QLD Broncos Eels 6 34 202003BRIPAR
2020 3 29/05/2020 18:00:00 Townsville QLD Cowboys Titans 36 6 202003NQLGLD
2020 3 29/05/2020 19:55:00 Parramatta NSW Roosters Rabbitohs 28 12 202003SYDSOU
2020 3 30/05/2020 15:00:00 Gosford NSW Warriors Dragons 18 0 202003AKLSGI
2020 3 30/05/2020 17:30:00 Parramatta NSW Sharks Wests Tigers 16 28 202003CROWST
2020 3 30/05/2020 19:35:00 Melbourne VIC Storm Raiders 6 22 202003MELCBR
2020 3 31/05/2020 16:05:00 Leumeah NSW Panthers Knights 14 14 202003PENNEW
2020 3 31/05/2020 18:30:00 Gosford NSW Sea Eagles Bulldogs 32 6 202003MNLCNB
2020 4 04/06/2020 19:50:00 Milton QLD Broncos Roosters 0 59 202004BRISYD
2020 4 05/06/2020 18:00:00 Leumeah NSW Panthers Warriors 26 0 202004PENAKL
2020 4 05/06/2020 19:55:00 Melbourne VIC Storm Rabbitohs 22 8 202004MELSOU
2020 4 06/06/2020 17:30:00 Parramatta NSW Eels Sea Eagles 19 16 202004PARMNL
2020 4 06/06/2020 19:35:00 Townsville QLD Cowboys Sharks 16 26 202004NQLCRO
2020 4 07/06/2020 16:05:00 Leumeah NSW Raiders Knights 18 34 202004CBRNEW
2020 4 07/06/2020 18:30:00 Milton QLD Titans Wests Tigers 28 23 202004GLDWST
2020 4 08/06/2020 16:05:00 Parramatta NSW Bulldogs Dragons 22 2 202004CNBSGI
2020 5 11/06/2020 19:50:00 Gosford NSW Sea Eagles Broncos 20 18 202005MNLBRI
2020 5 12/06/2020 18:00:00 Gosford NSW Warriors Cowboys 37 26 202005AKLNQL
2020 5 12/06/2020 19:55:00 Parramatta NSW Eels Panthers 16 10 202005PARPEN
2020 5 13/06/2020 15:00:00 Parramatta NSW Rabbitohs Titans 32 12 202005SOUGLD
2020 5 13/06/2020 17:30:00 Gosford NSW Knights Storm 12 26 202005NEWMEL
2020 5 13/06/2020 19:35:00 Leumeah NSW Wests Tigers Raiders 6 14 202005WSTCBR
2020 5 14/06/2020 16:05:00 Leumeah NSW Dragons Sharks 30 16 202005SGICRO
2020 5 15/06/2020 19:00:00 Parramatta NSW Bulldogs Roosters 6 42 202005CNBSYD
2020 6 18/06/2020 19:50:00 Gosford NSW Knights Broncos 27 6 202006NEWBRI
2020 6 19/06/2020 18:00:00 Parramatta NSW Rabbitohs Warriors 40 12 202006SOUAKL
2020 6 19/06/2020 19:55:00 Leumeah NSW Panthers Storm 21 14 202006PENMEL
2020 6 20/06/2020 15:00:00 Milton QLD Titans Dragons 8 20 202006GLDSGI
2020 6 20/06/2020 17:30:00 Leumeah NSW Wests Tigers Cowboys 36 20 202006WSTNQL
2020 6 20/06/2020 19:35:00 Parramatta NSW Roosters Eels 24 10 202006SYDPAR
2020 6 21/06/2020 16:05:00 Leumeah NSW Raiders Sea Eagles 6 14 202006CBRMNL
2020 6 21/06/2020 18:30:00 Parramatta NSW Sharks Bulldogs 20 18 202006CROCNB
2020 7 25/06/2020 19:50:00 Kogarah NSW Panthers Rabbitohs 20 12 202007PENSOU
2020 7 26/06/2020 18:00:00 Kogarah NSW Storm Warriors 50 6 202007MELAKL
2020 7 26/06/2020 19:55:00 Parramatta NSW Roosters Dragons 26 12 202007SYDSGI
2020 7 27/06/2020 15:00:00 Townsville QLD Cowboys Knights 32 20 202007NQLNEW
2020 7 27/06/2020 17:30:00 Milton QLD Broncos Titans 12 30 202007BRIGLD
2020 7 27/06/2020 19:35:00 Parramatta NSW Eels Raiders 25 24 202007PARCBR
2020 7 28/06/2020 16:05:00 Gosford NSW Sea Eagles Sharks 22 40 202007MNLCRO
2020 7 28/06/2020 18:30:00 Parramatta NSW Bulldogs Wests Tigers 6 34 202007CNBWST
2020 8 02/07/2020 19:50:00 Milton QLD Storm Roosters 27 25 202008MELSYD
2020 8 03/07/2020 18:00:00 Bruce ACT Raiders Dragons 22 16 202008CBRSGI
2020 8 03/07/2020 19:55:00 Parramatta NSW Eels Cowboys 42 4 202008PARNQL
2020 8 04/07/2020 15:00:00 Robina QLD Titans Sharks 10 40 202008GLDCRO
2020 8 04/07/2020 17:30:00 Gosford NSW Warriors Broncos 26 16 202008AKLBRI
2020 8 04/07/2020 19:35:00 Parramatta NSW Wests Tigers Panthers 12 19 202008WSTPEN
2020 8 05/07/2020 16:05:00 Brookvale NSW Sea Eagles Knights 12 14 202008MNLNEW
2020 8 05/07/2020 18:30:00 Parramatta NSW Bulldogs Rabbitohs 10 26 202008CNBSOU
2020 9 09/07/2020 19:50:00 Townsville QLD Cowboys Roosters 16 42 202009NQLSYD
2020 9 10/07/2020 18:00:00 Robina QLD Titans Warriors 16 12 202009GLDAKL
2020 9 10/07/2020 19:55:00 Parramatta NSW Rabbitohs Wests Tigers 18 10 202009SOUWST
2020 9 11/07/2020 15:00:00 Kogarah NSW Sharks Panthers 24 56 202009CROPEN
2020 9 11/07/2020 17:30:00 Milton QLD Broncos Bulldogs 26 8 202009BRICNB
2020 9 11/07/2020 19:35:00 Bruce ACT Raiders Storm 14 20 202009CBRMEL
2020 9 12/07/2020 16:05:00 Newcastle NSW Knights Eels 4 10 202009NEWPAR
2020 9 12/07/2020 18:30:00 Kogarah NSW Dragons Sea Eagles 34 4 202009SGIMNL
2020 10 16/07/2020 19:50:00 Moore Park NSW Roosters Raiders 20 24 202010SYDCBR
2020 10 17/07/2020 18:00:00 Bokarina QLD Storm Titans 42 6 202010MELGLD
2020 10 17/07/2020 19:55:00 Lilyfield NSW Wests Tigers Broncos 48 0 202010WSTBRI
2020 10 18/07/2020 15:00:00 Wollongong NSW Dragons Bulldogs 28 22 202010SGICNB
2020 10 18/07/2020 17:30:00 Parramatta NSW Rabbitohs Knights 18 20 202010SOUNEW
2020 10 18/07/2020 19:35:00 Brookvale NSW Sea Eagles Eels 22 18 202010MNLPAR
2020 10 19/07/2020 14:00:00 Gosford NSW Warriors Sharks 10 46 202010AKLCRO
2020 10 19/07/2020 16:05:00 Penrith NSW Panthers Cowboys 22 10 202010PENNQL
2020 11 23/07/2020 19:50:00 Parramatta NSW Eels Wests Tigers 26 16 202011PARWST
2020 11 24/07/2020 18:00:00 Townsville QLD Cowboys Sea Eagles 12 24 202011NQLMNL
2020 11 24/07/2020 19:55:00 Milton QLD Broncos Storm 8 46 202011BRIMEL
2020 11 25/07/2020 15:00:00 Gosford NSW Warriors Roosters 10 18 202011AKLSYD
2020 11 25/07/2020 17:30:00 Kogarah NSW Sharks Dragons 28 24 202011CROSGI
2020 11 25/07/2020 19:35:00 Bruce ACT Raiders Rabbitohs 18 12 202011CBRSOU
2020 11 26/07/2020 14:00:00 Newcastle NSW Knights Bulldogs 12 18 202011NEWCNB
2020 11 26/07/2020 16:05:00 Robina QLD Titans Panthers 14 22 202011GLDPEN
2020 12 30/07/2020 19:50:00 Kogarah NSW Dragons Rabbitohs 24 32 202012SGISOU
2020 12 31/07/2020 18:00:00 Moore Park NSW Wests Tigers Warriors 20 26 202012WSTAKL
2020 12 31/07/2020 19:55:00 Milton QLD Broncos Sharks 26 36 202012BRICRO
2020 12 01/08/2020 15:00:00 Moore Park NSW Roosters Titans 18 12 202012SYDGLD
2020 12 01/08/2020 17:30:00 Townsville QLD Cowboys Raiders 12 14 202012NQLCBR
2020 12 01/08/2020 19:35:00 Brookvale NSW Sea Eagles Panthers 12 42 202012MNLPEN
2020 12 02/08/2020 14:00:00 Homebush NSW Bulldogs Eels 16 18 202012CNBPAR
2020 12 02/08/2020 16:05:00 Bokarina QLD Storm Knights 26 16 202012MELNEW
2020 13 06/08/2020 19:50:00 Wollongong NSW Dragons Roosters 16 24 202013SGISYD
2020 13 07/08/2020 18:00:00 Brookvale NSW Sea Eagles Warriors 22 26 202013MNLAKL
2020 13 07/08/2020 19:55:00 Homebush NSW Rabbitohs Broncos 28 10 202013SOUBRI
2020 13 08/08/2020 15:00:00 Bokarina QLD Storm Bulldogs 41 10 202013MELCNB
2020 13 08/08/2020 17:30:00 Newcastle NSW Knights Wests Tigers 44 4 202013NEWWST
2020 13 08/08/2020 19:35:00 Penrith NSW Panthers Raiders 28 12 202013PENCBR
2020 13 09/08/2020 14:00:00 Robina QLD Titans Cowboys 30 10 202013GLDNQL
2020 13 09/08/2020 16:05:00 Kogarah NSW Sharks Eels 12 14 202013CROPAR
2020 14 13/08/2020 19:50:00 Moore Park NSW Roosters Storm 6 24 202014SYDMEL
2020 14 14/08/2020 18:00:00 Gosford NSW Warriors Panthers 12 18 202014AKLPEN
2020 14 14/08/2020 19:55:00 Parramatta NSW Eels Dragons 12 14 202014PARSGI
2020 14 15/08/2020 15:00:00 Kogarah NSW Sharks Titans 30 18 202014CROGLD
2020 14 15/08/2020 17:30:00 Townsville QLD Cowboys Rabbitohs 30 31 202014NQLSOU
2020 14 15/08/2020 19:35:00 Bruce ACT Raiders Broncos 36 8 202014CBRBRI
2020 14 16/08/2020 14:00:00 Newcastle NSW Knights Sea Eagles 26 24 202014NEWMNL
2020 14 16/08/2020 16:05:00 Parramatta NSW Wests Tigers Bulldogs 29 28 202014WSTCNB
2020 15 20/08/2020 19:50:00 Parramatta NSW Eels Storm 14 0 202015PARMEL
2020 15 21/08/2020 18:00:00 Penrith NSW Panthers Sharks 38 12 202015PENCRO
2020 15 21/08/2020 19:55:00 Milton QLD Broncos Dragons 24 28 202015BRISGI
2020 15 22/08/2020 15:00:00 Robina QLD Titans Raiders 16 36 202015GLDCBR
2020 15 22/08/2020 17:30:00 Lilyfield NSW Wests Tigers Roosters 16 38 202015WSTSYD
2020 15 22/08/2020 19:35:00 Homebush NSW Rabbitohs Sea Eagles 56 16 202015SOUMNL
2020 15 23/08/2020 14:00:00 Homebush NSW Bulldogs Warriors 14 20 202015CNBAKL
2020 15 23/08/2020 16:05:00 Newcastle NSW Knights Cowboys 12 0 202015NEWNQL
2020 16 27/08/2020 19:50:00 Parramatta NSW Eels Rabbitohs 0 38 202016PARSOU
2020 16 28/08/2020 18:00:00 Kogarah NSW Dragons Titans 10 14 202016SGIGLD
2020 16 28/08/2020 19:55:00 Moore Park NSW Roosters Broncos 58 12 202016SYDBRI
2020 16 29/08/2020 15:00:00 Tamworth NSW Warriors Knights 36 6 202016AKLNEW
2020 16 29/08/2020 17:30:00 Kogarah NSW Sharks Cowboys 28 12 202016CRONQL
2020 16 29/08/2020 19:35:00 Penrith NSW Panthers Wests Tigers 30 6 202016PENWST
2020 16 30/08/2020 16:05:00 Bokarina QLD Storm Sea Eagles 30 6 202016MELMNL
2020 16 30/08/2020 18:30:00 Bruce ACT Raiders Bulldogs 34 20 202016CBRCNB
2020 17 03/09/2020 19:50:00 Milton QLD Broncos Panthers 12 25 202017BRIPEN
2020 17 04/09/2020 18:00:00 Newcastle NSW Knights Sharks 38 10 202017NEWCRO
2020 17 04/09/2020 19:55:00 Homebush NSW Rabbitohs Storm 16 22 202017SOUMEL
2020 17 05/09/2020 15:00:00 Homebush NSW Bulldogs Titans 14 18 202017CNBGLD
2020 17 05/09/2020 17:30:00 Brookvale NSW Sea Eagles Wests Tigers 32 34 202017MNLWST
2020 17 05/09/2020 19:35:00 Bruce ACT Raiders Roosters 6 18 202017CBRSYD
2020 17 06/09/2020 16:05:00 Gosford NSW Warriors Eels 18 24 202017AKLPAR
2020 17 06/09/2020 18:30:00 Townsville QLD Cowboys Dragons 23 22 202017NQLSGI
2020 18 10/09/2020 19:50:00 Parramatta NSW Wests Tigers Rabbitohs 24 26 202018WSTSOU
2020 18 11/09/2020 18:00:00 Homebush NSW Bulldogs Sea Eagles 20 32 202018CNBMNL
2020 18 11/09/2020 19:55:00 Penrith NSW Panthers Eels 20 2 202018PENPAR
2020 18 12/09/2020 15:00:00 Wollongong NSW Dragons Raiders 8 37 202018SGICBR
2020 18 12/09/2020 17:30:00 Robina QLD Titans Broncos 18 6 202018GLDBRI
2020 18 12/09/2020 19:35:00 Moore Park NSW Roosters Knights 42 12 202018SYDNEW
2020 18 13/09/2020 16:05:00 Bokarina QLD Storm Cowboys 36 20 202018MELNQL
2020 18 13/09/2020 18:30:00 Kogarah NSW Sharks Warriors 22 14 202018CROAKL
2020 19 17/09/2020 19:50:00 Homebush NSW Rabbitohs Bulldogs 16 26 202019SOUCNB
2020 19 18/09/2020 18:00:00 Townsville QLD Cowboys Panthers 12 32 202019NQLPEN
2020 19 18/09/2020 19:55:00 Parramatta NSW Eels Broncos 26 12 202019PARBRI
2020 19 19/09/2020 15:00:00 Brookvale NSW Sea Eagles Titans 24 42 202019MNLGLD
2020 19 19/09/2020 17:30:00 Bokarina QLD Storm Wests Tigers 50 22 202019MELWST
2020 19 19/09/2020 19:35:00 Moore Park NSW Roosters Sharks 34 18 202019SYDCRO
2020 19 20/09/2020 14:00:00 Bruce ACT Raiders Warriors 26 14 202019CBRAKL
2020 19 20/09/2020 16:05:00 Newcastle NSW Knights Dragons 42 18 202019NEWSGI
2020 20 24/09/2020 19:50:00 Milton QLD Broncos Cowboys 16 32 202020BRINQL
2020 20 25/09/2020 18:00:00 Robina QLD Titans Knights 36 6 202020GLDNEW
2020 20 25/09/2020 19:55:00 Homebush NSW Rabbitohs Roosters 60 8 202020SOUSYD
2020 20 26/09/2020 15:00:00 Homebush NSW Bulldogs Panthers 0 42 202020CNBPEN
2020 20 26/09/2020 17:30:00 Kogarah NSW Sharks Raiders 28 38 202020CROCBR
2020 20 26/09/2020 19:35:00 Parramatta NSW Wests Tigers Eels 24 28 202020WSTPAR
2020 20 27/09/2020 14:00:00 Gosford NSW Warriors Sea Eagles 40 28 202020AKLMNL
2020 20 27/09/2020 16:05:00 Kogarah NSW Dragons Storm 30 22 202020SGIMEL
2020 F1 02/10/2020 19:50:00 Penrith NSW Panthers Roosters 29 28 2020F1PENSYD
2020 F1 03/10/2020 17:40:00 Bruce ACT Raiders Sharks 32 20 2020F1CBRCRO
2020 F1 03/10/2020 19:50:00 Milton QLD Storm Eels 36 24 2020F1MELPAR
2020 F1 04/10/2020 16:05:00 Homebush NSW Rabbitohs Knights 46 20 2020F1SOUNEW
2020 F2 09/10/2020 19:50:00 Moore Park NSW Roosters Raiders 18 22 2020F2SYDCBR
2020 F2 10/10/2020 19:50:00 Parramatta NSW Eels Rabbitohs 24 38 2020F2PARSOU
2020 F3 16/10/2020 19:50:00 Milton QLD Storm Raiders 30 10 2020F3MELCBR
2020 F3 17/10/2020 19:50:00 Homebush NSW Panthers Rabbitohs 20 16 2020F3PENSOU
2020 GF 25/10/2020 19:30:00 Homebush NSW Panthers Storm 20 26 2020GFPENMEL
2021 1 11/03/2021 20:05:00 Melbourne VIC Storm Rabbitohs 26 18 202101MELSOU
2021 1 12/03/2021 18:00:00 Newcastle NSW Knights Bulldogs 32 16 202101NEWCNB
2021 1 12/03/2021 20:05:00 Milton QLD Broncos Eels 16 24 202101BRIPAR
2021 1 13/03/2021 15:00:00 Gosford NSW Warriors Titans 19 6 202101AKLGLD
2021 1 13/03/2021 17:30:00 Moore Park NSW Roosters Sea Eagles 46 4 202101SYDMNL
2021 1 13/03/2021 19:35:00 Penrith NSW Panthers Cowboys 24 0 202101PENNQL
2021 1 14/03/2021 16:05:00 Bruce ACT Raiders Wests Tigers 30 12 202101CBRWST
2021 1 14/03/2021 18:15:00 Kogarah NSW Dragons Sharks 18 32 202101SGICRO
2021 2 18/03/2021 20:05:00 Parramatta NSW Eels Storm 16 12 202102PARMEL
2021 2 19/03/2021 18:00:00 Gosford NSW Warriors Knights 16 20 202102AKLNEW
2021 2 19/03/2021 20:05:00 Robina QLD Titans Broncos 28 16 202102GLDBRI
2021 2 20/03/2021 15:00:00 Parramatta NSW Bulldogs Panthers 0 28 202102CNBPEN
2021 2 20/03/2021 17:30:00 Brookvale NSW Sea Eagles Rabbitohs 12 26 202102MNLSOU
2021 2 20/03/2021 19:35:00 Townsville QLD Cowboys Dragons 18 25 202102NQLSGI
2021 2 21/03/2021 16:05:00 Leumeah NSW Wests Tigers Roosters 6 40 202102WSTSYD
2021 2 21/03/2021 18:15:00 Kogarah NSW Sharks Raiders 10 12 202102CROCBR
2021 3 25/03/2021 20:05:00 Penrith NSW Panthers Storm 12 10 202103PENMEL
2021 3 26/03/2021 18:00:00 Wollongong NSW Dragons Sea Eagles 38 12 202103SGIMNL
2021 3 26/03/2021 20:05:00 Homebush NSW Rabbitohs Roosters 26 16 202103SOUSYD
2021 3 27/03/2021 15:00:00 Bruce ACT Raiders Warriors 31 34 202103CBRAKL
2021 3 27/03/2021 17:30:00 Milton QLD Broncos Bulldogs 24 0 202103BRICNB
2021 3 27/03/2021 19:35:00 Parramatta NSW Eels Sharks 28 4 202103PARCRO
2021 3 28/03/2021 16:05:00 Newcastle NSW Knights Wests Tigers 20 24 202103NEWWST
2021 3 28/03/2021 18:15:00 Townsville QLD Cowboys Titans 8 44 202103NQLGLD
2021 4 01/04/2021 20:05:00 Brookvale NSW Sea Eagles Panthers 6 46 202104MNLPEN
2021 4 02/04/2021 16:05:00 Homebush NSW Bulldogs Rabbitohs 0 38 202104CNBSOU
2021 4 02/04/2021 20:05:00 Melbourne VIC Storm Broncos 40 6 202104MELBRI
2021 4 03/04/2021 17:15:00 Kogarah NSW Sharks Cowboys 48 10 202104CRONQL
2021 4 03/04/2021 19:45:00 Kogarah NSW Titans Raiders 4 20 202104GLDCBR
2021 4 04/04/2021 16:05:00 Newcastle NSW Knights Dragons 13 22 202104NEWSGI
2021 4 04/04/2021 18:15:00 Moore Park NSW Roosters Warriors 32 12 202104SYDAKL
2021 4 05/04/2021 16:00:00 Homebush NSW Wests Tigers Eels 22 36 202104WSTPAR
2021 5 08/04/2021 19:50:00 Homebush NSW Rabbitohs Broncos 35 6 202105SOUBRI
2021 5 09/04/2021 18:00:00 Gosford NSW Warriors Sea Eagles 12 13 202105AKLMNL
2021 5 09/04/2021 19:55:00 Penrith NSW Panthers Raiders 30 10 202105PENCBR
2021 5 10/04/2021 15:00:00 Robina QLD Titans Knights 42 16 202105GLDNEW
2021 5 10/04/2021 17:30:00 Homebush NSW Bulldogs Storm 18 52 202105CNBMEL
2021 5 10/04/2021 19:35:00 Moore Park NSW Roosters Sharks 26 18 202105SYDCRO
2021 5 11/04/2021 16:05:00 Lilyfield NSW Wests Tigers Cowboys 30 34 202105WSTNQL
2021 5 11/04/2021 18:15:00 Parramatta NSW Eels Dragons 12 26 202105PARSGI
2021 6 15/04/2021 19:50:00 Milton QLD Broncos Panthers 12 20 202106BRIPEN
2021 6 16/04/2021 18:00:00 Newcastle NSW Knights Sharks 26 22 202106NEWCRO
2021 6 16/04/2021 19:55:00 Melbourne VIC Storm Roosters 20 4 202106MELSYD
2021 6 17/04/2021 15:00:00 Mudgee NSW Sea Eagles Titans 36 0 202106MNLGLD
2021 6 17/04/2021 17:30:00 Homebush NSW Rabbitohs Wests Tigers 18 14 202106SOUWST
2021 6 17/04/2021 19:35:00 Bruce ACT Raiders Eels 10 35 202106CBRPAR
2021 6 18/04/2021 14:00:00 Kogarah NSW Dragons Warriors 14 20 202106SGIAKL
2021 6 18/04/2021 16:05:00 Townsville QLD Cowboys Bulldogs 30 18 202106NQLCNB
2021 7 22/04/2021 19:50:00 Penrith NSW Panthers Knights 24 6 202107PENNEW
2021 7 23/04/2021 18:00:00 Robina QLD Titans Rabbitohs 30 40 202107GLDSOU
2021 7 23/04/2021 19:55:00 Marrara NT Eels Broncos 46 6 202107PARBRI
2021 7 24/04/2021 17:30:00 Kogarah NSW Sharks Bulldogs 12 18 202107CROCNB
2021 7 24/04/2021 19:35:00 Townsville QLD Cowboys Raiders 26 24 202107NQLCBR
2021 7 25/04/2021 13:45:00 Parramatta NSW Wests Tigers Sea Eagles 6 40 202107WSTMNL
2021 7 25/04/2021 16:05:00 Moore Park NSW Roosters Dragons 34 10 202107SYDSGI
2021 7 25/04/2021 18:15:00 Melbourne VIC Storm Warriors 42 20 202107MELAKL
2021 8 29/04/2021 19:50:00 Bruce ACT Raiders Rabbitohs 20 34 202108CBRSOU
2021 8 30/04/2021 18:00:00 Melbourne VIC Storm Sharks 40 14 202108MELCRO
2021 8 30/04/2021 19:55:00 Milton QLD Broncos Titans 36 28 202108BRIGLD
2021 8 01/05/2021 15:00:00 Bathurst NSW Panthers Sea Eagles 28 16 202108PENMNL
2021 8 01/05/2021 17:30:00 Homebush NSW Bulldogs Eels 10 32 202108CNBPAR
2021 8 01/05/2021 19:35:00 Newcastle NSW Knights Roosters 4 38 202108NEWSYD
2021 8 02/05/2021 14:00:00 Gosford NSW Warriors Cowboys 24 20 202108AKLNQL
2021 8 02/05/2021 16:05:00 Wollongong NSW Dragons Wests Tigers 8 16 202108SGIWST
2021 9 06/05/2021 19:50:00 Homebush NSW Rabbitohs Storm 0 50 202109SOUMEL
2021 9 07/05/2021 18:00:00 Penrith NSW Panthers Sharks 48 0 202109PENCRO
2021 9 07/05/2021 19:55:00 Parramatta NSW Eels Roosters 31 18 202109PARSYD
2021 9 08/05/2021 15:00:00 Wagga Wagga NSW Raiders Knights 16 24 202109CBRNEW
2021 9 08/05/2021 17:30:00 Leumeah NSW Wests Tigers Titans 28 36 202109WSTGLD
2021 9 08/05/2021 19:35:00 Townsville QLD Cowboys Broncos 19 18 202109NQLBRI
2021 9 09/05/2021 14:00:00 Brookvale NSW Sea Eagles Warriors 38 32 202109MNLAKL
2021 9 09/05/2021 16:05:00 Kogarah NSW Dragons Bulldogs 32 12 202109SGICNB
2021 10 14/05/2021 18:00:00 Milton QLD Wests Tigers Knights 36 18 202110WSTNEW
2021 10 14/05/2021 20:05:00 Milton QLD Sea Eagles Broncos 50 6 202110MNLBRI
2021 10 15/05/2021 15:00:00 Milton QLD Bulldogs Raiders 18 20 202110CNBCBR
2021 10 15/05/2021 17:30:00 Milton QLD Sharks Rabbitohs 22 32 202110CROSOU
2021 10 15/05/2021 19:45:00 Milton QLD Roosters Cowboys 30 16 202110SYDNQL
2021 10 16/05/2021 13:50:00 Milton QLD Warriors Eels 18 34 202110AKLPAR
2021 10 16/05/2021 16:05:00 Milton QLD Storm Dragons 44 18 202110MELSGI
2021 10 16/05/2021 18:25:00 Milton QLD Titans Panthers 12 48 202110GLDPEN
2021 11 20/05/2021 19:50:00 Townsville QLD Cowboys Knights 36 20 202111NQLNEW
2021 11 21/05/2021 18:00:00 Gosford NSW Warriors Wests Tigers 30 26 202111AKLWST
2021 11 21/05/2021 19:55:00 Kogarah NSW Sharks Dragons 13 12 202111CROSGI
2021 11 22/05/2021 15:00:00 Robina QLD Titans Bulldogs 30 20 202111GLDCNB
2021 11 22/05/2021 17:30:00 Moore Park NSW Roosters Broncos 16 34 202111SYDBRI
2021 11 22/05/2021 19:35:00 Bruce ACT Raiders Storm 10 34 202111CBRMEL
2021 11 23/05/2021 14:00:00 Dubbo NSW Rabbitohs Panthers 12 56 202111SOUPEN
2021 11 23/05/2021 16:05:00 Parramatta NSW Eels Sea Eagles 6 28 202111PARMNL
2021 12 27/05/2021 19:50:00 Milton QLD Broncos Storm 12 40 202112BRIMEL
2021 12 28/05/2021 18:00:00 Townsville QLD Cowboys Warriors 29 28 202112NQLAKL
2021 12 28/05/2021 19:55:00 Parramatta NSW Wests Tigers Dragons 34 18 202112WSTSGI
2021 12 29/05/2021 15:00:00 Penrith NSW Panthers Bulldogs 30 4 202112PENCNB
2021 12 29/05/2021 17:30:00 Homebush NSW Rabbitohs Eels 38 20 202112SOUPAR
2021 12 29/05/2021 19:35:00 Gosford NSW Roosters Raiders 44 16 202112SYDCBR
2021 12 30/05/2021 14:00:00 Coffs Harbour NSW Sharks Titans 38 10 202112CROGLD
2021 12 30/05/2021 16:05:00 Newcastle NSW Knights Sea Eagles 18 10 202112NEWMNL
2021 13 03/06/2021 19:50:00 Kogarah NSW Dragons Broncos 52 24 202113SGIBRI
2021 13 04/06/2021 19:55:00 Lilyfield NSW Wests Tigers Panthers 26 6 202113WSTPEN
2021 13 05/06/2021 19:35:00 Bokarina QLD Storm Titans 20 14 202113MELGLD
2021 13 06/06/2021 16:05:00 Newcastle NSW Knights Eels 4 40 202113NEWPAR
2021 14 11/06/2021 18:00:00 Brookvale NSW Sea Eagles Cowboys 50 18 202114MNLNQL
2021 14 11/06/2021 19:55:00 Kogarah NSW Sharks Panthers 19 18 202114CROPEN
2021 14 12/06/2021 15:00:00 Robina QLD Titans Roosters 34 35 202114GLDSYD
2021 14 12/06/2021 17:30:00 Homebush NSW Rabbitohs Knights 24 10 202114SOUNEW
2021 14 12/06/2021 19:35:00 Bruce ACT Raiders Broncos 38 16 202114CBRBRI
2021 14 13/06/2021 14:00:00 Gosford NSW Warriors Storm 16 42 202114AKLMEL
2021 14 13/06/2021 16:05:00 Parramatta NSW Eels Wests Tigers 40 12 202114PARWST
2021 14 14/06/2021 16:00:00 Homebush NSW Bulldogs Dragons 28 6 202114CNBSGI
2021 15 17/06/2021 19:50:00 Milton QLD Broncos Rabbitohs 0 46 202115BRISOU
2021 15 18/06/2021 18:00:00 Townsville QLD Cowboys Sharks 24 26 202115NQLCRO
2021 15 18/06/2021 19:55:00 Penrith NSW Panthers Roosters 38 12 202115PENSYD
2021 15 19/06/2021 15:00:00 Newcastle NSW Knights Warriors 10 6 202115NEWAKL
2021 15 19/06/2021 17:30:00 Wollongong NSW Dragons Raiders 22 20 202115SGICBR
2021 15 19/06/2021 19:35:00 Bokarina QLD Storm Wests Tigers 66 16 202115MELWST
2021 15 20/06/2021 14:00:00 Parramatta NSW Eels Bulldogs 36 10 202115PARCNB
2021 15 20/06/2021 16:05:00 Robina QLD Titans Sea Eagles 24 56 202115GLDMNL
2021 16 01/07/2021 19:50:00 Newcastle NSW Roosters Storm 0 46 202116SYDMEL
2021 16 02/07/2021 18:00:00 Gosford NSW Warriors Dragons 18 19 202116AKLSGI
2021 16 02/07/2021 19:55:00 Penrith NSW Panthers Eels 13 12 202116PENPAR
2021 16 03/07/2021 15:00:00 Parramatta NSW Bulldogs Sea Eagles 0 66 202116CNBMNL
2021 16 03/07/2021 17:30:00 Bruce ACT Raiders Titans 6 44 202116CBRGLD
2021 16 03/07/2021 19:35:00 Newcastle NSW Knights Cowboys 38 0 202116NEWNQL
2021 16 04/07/2021 14:00:00 Milton QLD Broncos Sharks 26 18 202116BRICRO
2021 16 04/07/2021 16:05:00 Lilyfield NSW Wests Tigers Rabbitohs 22 38 202116WSTSOU
2021 17 08/07/2021 19:50:00 Brookvale NSW Sea Eagles Raiders 16 30 202117MNLCBR
2021 17 09/07/2021 19:55:00 Newcastle NSW Rabbitohs Cowboys 46 18 202117SOUNQL
2021 17 10/07/2021 19:35:00 Parramatta NSW Bulldogs Roosters 16 22 202117CNBSYD
2021 17 11/07/2021 16:05:00 Kogarah NSW Sharks Warriors 20 12 202117CROAKL
2021 18 16/07/2021 18:00:00 Robina QLD Titans Eels 8 26 202118GLDPAR
2021 18 16/07/2021 20:05:00 Robina QLD Sea Eagles Dragons 32 18 202118MNLSGI
2021 18 17/07/2021 15:00:00 Townsville QLD Cowboys Roosters 18 34 202118NQLSYD
2021 18 17/07/2021 17:30:00 Robina QLD Raiders Sharks 34 18 202118CBRCRO
2021 18 17/07/2021 19:35:00 Robina QLD Storm Knights 48 4 202118MELNEW
2021 18 18/07/2021 13:50:00 Milton QLD Warriors Panthers 16 30 202118AKLPEN
2021 18 18/07/2021 16:05:00 Milton QLD Broncos Wests Tigers 24 42 202118BRIWST
2021 18 18/07/2021 18:15:00 Robina QLD Rabbitohs Bulldogs 32 24 202118SOUCNB
2021 19 22/07/2021 19:50:00 Robina QLD Eels Raiders 10 12 202119PARCBR
2021 19 23/07/2021 18:00:00 Bokarina QLD Roosters Knights 28 8 202119SYDNEW
2021 19 23/07/2021 19:55:00 Townsville QLD Cowboys Storm 16 20 202119NQLMEL
2021 19 24/07/2021 15:00:00 Bokarina QLD Rabbitohs Warriors 60 22 202119SOUAKL
2021 19 24/07/2021 17:30:00 Milton QLD Sea Eagles Wests Tigers 44 24 202119MNLWST
2021 19 24/07/2021 19:35:00 Milton QLD Panthers Broncos 18 12 202119PENBRI
2021 19 25/07/2021 13:50:00 Robina QLD Dragons Titans 10 32 202119SGIGLD
2021 19 25/07/2021 16:05:00 Robina QLD Bulldogs Sharks 24 44 202119CNBCRO
2021 20 29/07/2021 19:50:00 Mackay QLD Roosters Eels 28 0 202120SYDPAR
2021 20 30/07/2021 18:00:00 Milton QLD Wests Tigers Warriors 16 18 202120WSTAKL
2021 20 30/07/2021 20:05:00 Milton QLD Broncos Cowboys 37 18 202120BRINQL
2021 20 01/08/2021 13:50:00 Milton QLD Knights Raiders 34 24 202120NEWCBR
2021 20 01/08/2021 16:05:00 Milton QLD Storm Panthers 37 10 202120MELPEN
2021 20 01/08/2021 18:25:00 Milton QLD Dragons Rabbitohs 14 50 202120SGISOU
2021 20 02/08/2021 18:00:00 Milton QLD Bulldogs Titans 6 34 202120CNBGLD
2021 20 02/08/2021 20:05:00 Milton QLD Sharks Sea Eagles 22 40 202120CROMNL
2021 21 05/08/2021 19:50:00 Milton QLD Knights Broncos 28 20 202121NEWBRI
2021 21 06/08/2021 18:00:00 Robina QLD Raiders Dragons 20 12 202121CBRSGI
2021 21 06/08/2021 20:05:00 Robina QLD Eels Rabbitohs 12 40 202121PARSOU
2021 21 07/08/2021 15:00:00 Robina QLD Warriors Sharks 18 16 202121AKLCRO
2021 21 07/08/2021 17:30:00 Milton QLD Roosters Panthers 14 20 202121SYDPEN
2021 21 07/08/2021 19:35:00 Milton QLD Sea Eagles Storm 18 28 202121MNLMEL
2021 21 08/08/2021 13:50:00 Robina QLD Bulldogs Wests Tigers 16 28 202121CNBWST
2021 21 08/08/2021 16:05:00 Robina QLD Titans Cowboys 36 14 202121GLDNQL
2021 22 12/08/2021 19:50:00 Bokarina QLD Storm Raiders 26 16 202122MELCBR
2021 22 13/08/2021 18:00:00 Milton QLD Dragons Panthers 16 34 202122SGIPEN
2021 22 13/08/2021 20:05:00 Milton QLD Broncos Roosters 20 21 202122BRISYD
2021 22 14/08/2021 15:00:00 Robina QLD Rabbitohs Titans 36 6 202122SOUGLD
2021 22 14/08/2021 17:30:00 Townsville QLD Cowboys Wests Tigers 16 24 202122NQLWST
2021 22 14/08/2021 19:35:00 Bokarina QLD Sea Eagles Eels 56 10 202122MNLPAR
2021 22 15/08/2021 13:50:00 Redcliffe QLD Warriors Bulldogs 24 10 202122AKLCNB
2021 22 15/08/2021 16:00:00 Redcliffe QLD Sharks Knights 14 16 202122CRONEW
2021 23 19/08/2021 19:50:00 Robina QLD Titans Storm 20 34 202123GLDMEL
2021 23 20/08/2021 18:00:00 Milton QLD Raiders Sea Eagles 18 19 202123CBRMNL
2021 23 20/08/2021 20:05:00 Milton QLD Panthers Rabbitohs 25 12 202123PENSOU
2021 23 21/08/2021 15:00:00 Rockhampton QLD Wests Tigers Sharks 20 50 202123WSTCRO
2021 23 21/08/2021 17:30:00 Robina QLD Bulldogs Knights 16 22 202123CNBNEW
2021 23 21/08/2021 19:35:00 Robina QLD Eels Cowboys 32 16 202123PARNQL
2021 23 22/08/2021 14:00:00 Toowoomba QLD Dragons Roosters 22 40 202123SGISYD
2021 23 22/08/2021 16:05:00 Milton QLD Broncos Warriors 24 22 202123BRIAKL
2021 24 26/08/2021 19:50:00 Bokarina QLD Knights Titans 15 14 202124NEWGLD
2021 24 27/08/2021 18:00:00 Mackay QLD Warriors Raiders 16 28 202124AKLCBR
2021 24 27/08/2021 19:55:00 Milton QLD Roosters Rabbitohs 12 54 202124SYDSOU
2021 24 28/08/2021 15:00:00 Rockhampton QLD Dragons Cowboys 26 38 202124SGINQL
2021 24 28/08/2021 17:30:00 Milton QLD Sharks Broncos 24 16 202124CROBRI
2021 24 28/08/2021 19:35:00 Milton QLD Storm Eels 10 22 202124MELPAR
2021 24 29/08/2021 13:50:00 Redcliffe QLD Sea Eagles Bulldogs 36 18 202124MNLCNB
2021 24 29/08/2021 16:05:00 Redcliffe QLD Panthers Wests Tigers 30 16 202124PENWST
2021 25 02/09/2021 19:50:00 Mackay QLD Raiders Roosters 16 40 202125CBRSYD
2021 25 03/09/2021 18:00:00 Robina QLD Sharks Storm 16 28 202125CROMEL
2021 25 03/09/2021 20:05:00 Robina QLD Eels Panthers 6 40 202125PARPEN
2021 25 04/09/2021 15:00:00 Milton QLD Broncos Knights 35 22 202125BRINEW
2021 25 04/09/2021 17:30:00 Townsville QLD Cowboys Sea Eagles 18 46 202125NQLMNL
2021 25 04/09/2021 19:35:00 Bokarina QLD Rabbitohs Dragons 20 16 202125SOUSGI
2021 25 05/09/2021 14:00:00 Robina QLD Titans Warriors 44 0 202125GLDAKL
2021 25 05/09/2021 16:05:00 Redcliffe QLD Wests Tigers Bulldogs 0 38 202125WSTCNB
2021 F1 10/09/2021 19:50:00 Bokarina QLD Storm Sea Eagles 40 12 2021F1MELMNL
2021 F1 11/09/2021 17:40:00 Townsville QLD Roosters Titans 25 24 2021F1SYDGLD
2021 F1 11/09/2021 19:50:00 Townsville QLD Panthers Rabbitohs 10 16 2021F1PENSOU
2021 F1 12/09/2021 16:05:00 Rockhampton QLD Eels Knights 28 20 2021F1PARNEW
2021 F2 17/09/2021 19:50:00 Mackay QLD Sea Eagles Roosters 42 6 2021F2MNLSYD
2021 F2 18/09/2021 19:50:00 Mackay QLD Panthers Eels 8 6 2021F2PENPAR
2021 F3 24/09/2021 20:05:00 Milton QLD Rabbitohs Sea Eagles 36 16 2021F3SOUMNL
2021 F3 25/09/2021 16:00:00 Milton QLD Storm Panthers 6 10 2021F3MELPEN
2021 GF 03/10/2021 19:30:00 Milton QLD Panthers Rabbitohs 14 12 2021GFPENSOU

Elo Model Rating System

My rationale for developing a Elo rating model is to help inform decisions with a professional sports environment on their and their opponents relative periods of strengths and weaknesses. This time-series analysis can produce probabilistic predictions of match outcomes that can be used to simulate matches or seasons and forecast ladder predictions and the probability of qualifying for finals football. As this data set is from the 2017 season to the end of the 2021 season, this model can be used to forecast the 2022 season and evaluate its accuracy against the real-life data.

As previously mentioned, it is a dynamic, iterative system whereby the value increases or decreases depending on the outcome of the match. The system uses the following formula to update the Elo rating of each team based on the outcome of the match.

\[ Rs = Ra + K * (Sa - Ea) \] Where:
* Rs = New Elo Rating
* Ra = previous Elo Rating
* K = K-factor parameter
* Sa = The actual outcome of the match
* Ea = The expected outcome of the match

The expected outcome of matches in the NRL is calculated using a logistic function that compares the ratings of the 2 teams and gives the probability that one team will win based on those current ratings, with a home field advantage parameter incorporated. The equation is as follows:

\[ Expected Outcome1 = 1 / (1 + 10^((Rating2 - (Rating1 + Home Field Advantage)) / 400)) \]

Where:

The expected outcome for the second team is -> Expected Outcome2 = 1 - Expected Outcome1

The winning team has their Elo rating increased using the model’s K adjustment factor and the losing team loses points following the same rule.

The Elo Model K factor (20 points) controls how much a teams rating changes after each match based on the result with a higher K-value making the rating changes more responsive and a lower K-value makes the ratings more stable and less reactive to results.

Example

We can calculate the Elo Rating points change for a match by using the Equations 1 and 2, for example, Melbourne Storm have an Elo Rating of 1600 and are playing at AAMI Park (+65 points) against the Newcastle Knights who have a rating of 1500.

Expected Outcome (home team) = 1 / (1 + 10^((1500 - 1665) / 400))
= 1 / (1 + 10^(-165 / 400))
= 1 / (1 + 10^(-0.4125))
= 1 / (1 + 0.386)
≈ 0.721 -> 72.1% chance of win

If the Storm won (Actual Result = 1) each team Elo Rating would change to:

New Storm Elo Rating = 1600 + 20 * (1 - 0.721)
= 1600 + 20 * 0.279
= 1600 + 5.58
≈ 1605.6

New Knights Elo Rating = 1500 + 20 * (0 - 0.279)
= 1500 - 5.58
≈ 1494.4

With the rate of change = +/- 5.6 Elo Rating Points.

The Elo rating system used in this NRL analysis uses the following parameters as standard in home/away team sports:

The key component of this Elo rating system is its ability to automatically update the teams rating each week as the matches are completed. As this data set contains weekly fixtures and results for 5 seasons, the rating model is required to attribute Elo points change for every fixture that each team plays. To reiterate, the value that points change is dependent on the expected, probabilistic outcome of either side winning which is calculated using the most up-to-date team Elo ratings. The ‘update_elo’ function is used to loop the common, reoccurring equations used to calculate the new Elo rating (Rs) using the pre-calculated expected outcomes. This reallocation of Elo Ratings for each team is then looped weekly following the results and changed depending on the match outcome.

## Initialise Team ratings ---------------------------------------------
# get character strings for each individual team.
teams <- unique(c(nrl$hteam, nrl$ateam))
# attribute a base Elo score of 1500 to each team
elo_ratings <- setNames(rep(1500, length(teams)), teams)
# Parameters
home_field_advantage <- 65
k_factor <- 20


## Create the Elo Update Function ---------------------------------------
# This function calculates the expected result and updates ratings based on the actual score.
update_elo <- function(team1, team2, score1, score2, ratings, k = 20) { # K-Factor = 20 -> controls how much a rating changes after each game
  rating1 <- ratings[team1]
  rating2 <- ratings[team2]
# Expected result including home field advantage (65 Elo points)
  expected1 <- 1 / (1 + 10^((rating2 - (rating1 + home_field_advantage)) / 400))
  expected2 <- 1 - expected1
# Actual result
  actual1 <- ifelse(score1 > score2, 1, ifelse(score1 == score2, 0.5, 0))
  actual2 <- 1 - actual1
# Update ratings
  ratings[team1] <- rating1 + k * (actual1 - expected1) # Elo rating equation
  ratings[team2] <- rating2 + k * (actual2 - expected2)
  
  return(ratings)
}


## Order matches Chronologically -------------------------
# Convert date column to Date class if it's not already
nrl$date <- as.Date(nrl$date)
# arrange in chronological order
nrl <- nrl %>%
  arrange(year, round, date)



## Apply Elo Rating Updates -------------------------
# This is where we loop through each match, update the ratings, and store the history
elo_history <- list()

for (i in 1:nrow(nrl)) {
  game <- nrl[i, ]
# Update ratings
  elo_ratings <- update_elo(
    team1 = game$hteam,
    team2 = game$ateam,
    score1 = game$hscore,
    score2 = game$ascore,
    ratings = elo_ratings,
    k = 20
  )
# Store Elo after this match
  elo_history[[i]] <- data.frame(
    match_id = game$match_id,
    year = game$year,
    round = game$round,
    date = game$date,
    team = c(game$hteam, game$ateam),
    rating = c(elo_ratings[game$hteam], elo_ratings[game$ateam])
  )
}
# Combine all rounds into one data frame
elo_df <- do.call(rbind, elo_history)

# remove date variable
elo_df <- elo_df %>% select(-date)

# combine year and round into a factor for the x axis of plot
elo_df <- elo_df %>%
  mutate(year_round = factor(paste(year, round, sep = "R"), 
                             levels = unique(paste(year, round, sep = "R"))))
 
# Shows each teams Elo rating after each round every year in the dataset (including finals)



# Final Table of every teams Elo rating at the end of the 2021 season-----
# Convert to a data frame from a named numeric vector
elo_ratings <- data.frame(
  team = names(elo_ratings),
  elo = as.numeric(elo_ratings)
)
# Reorder the Elo ratings of each team into descending order, add a rank column and rename column to 'Elo Rating'.
elo_ratings <- elo_ratings %>%
  arrange(desc(elo)) %>%
  mutate(Rank = row_number()) %>%
  rename(`Elo Rating` = elo) %>%
  select(Rank, team, `Elo Rating`)

knitr::kable(
  elo_ratings,
  caption = "*Table 2 - Each NRL Team's Elo Rating at the End of the 2021 Season*"
)
Table 2 - Each NRL Team’s Elo Rating at the End of the 2021 Season
Rank team Elo Rating
1 Storm 1754.440
2 Panthers 1728.996
3 Rabbitohs 1680.879
4 Roosters 1636.135
5 Eels 1588.811
6 Sea Eagles 1531.314
7 Raiders 1514.628
8 Knights 1464.535
9 Sharks 1457.995
10 Warriors 1412.634
11 Dragons 1408.828
12 Titans 1403.083
13 Wests Tigers 1390.592
14 Broncos 1379.799
15 Cowboys 1361.465
16 Bulldogs 1285.866
## Visualise the Ratings Over Time -------------
teams_elo <- ggplot(elo_df, aes(x = year_round, y = rating, color = team, group = team)) +
  geom_line(alpha = 0.7) +
  theme_minimal() +
  labs(title = "Figure 1 - NRL Elo Ratings Over Rounds",
       x = "Season and Round", y = "Elo Rating", caption = "Figure 1 - Interactive line graph showcasing teams Elo Rating change over time") +
   scale_x_discrete(breaks = elo_df$year_round[seq(1, length(elo_df$year_round), by = 70)]) +
  theme(axis.text.x = element_text(angle = 45, vjust = 0.5))
# Interactive
ggplotly(teams_elo)

This interactive plot showcases each teams Elo rating progression from the start of the 2017 season to the end of 2021 (including finals football if the team qualified).

2022 Simulation and Ladder Prediction

Using the weekly updated Elo ratings, I was able to import the 2022 season fixture list and simulate the season and the final ladder standing as well. This exercise is done to be able to evaluate the accuracy of using ongoing Elo ratings as acceptable metrics for team quality.

Table 3 shows match data from the 2022 season (inc. round, date, location, home team and away team) as well as updated Elo ratings for each team and the associated probabilistic odds for the home side winning. The final column is the simulated, predicted winner of the game.

# import 2022 fixture list
nrl2022 <- read_csv("/home/gthornton1999/NRL_Portfolio/Data/Elo/nrl-2022-UTC.csv")

# remove Result column
nrl2022 = subset(nrl2022, select = -c(Result))
# rename columns for ease
nrl2022 <- nrl2022 %>%
  rename(
    match_id = `Match Number`,
    round = `Round Number`,
    date = Date,
    location = Location,
    hteam = `Home Team`,
    ateam = `Away Team`
  )


# Use the latest Elo ratings for each team and turn them into the beginning of 2022
elo_ratings_2022 <- setNames(elo_ratings$`Elo Rating`, elo_ratings$team)

# Simulate match outcomes once and update Elo ------

#parameters
home_field_advantage <- 65
k <- 20

set.seed(123)  

nrl2022_results <- nrl2022 %>%
  mutate(
    hteam_rating = NA_real_,
    ateam_rating = NA_real_,
    expected_home_win = NA_real_,
    predicted_winner = NA_character_
  )

for (i in 1:nrow(nrl2022_results)) {
  home <- nrl2022_results$hteam[i]
  away <- nrl2022_results$ateam[i]
  
rating_home <- elo_ratings_2022[home]
rating_away <- elo_ratings_2022[away]

  
  expected_home <- 1 / (1 + 10^((rating_away - (rating_home + home_field_advantage)) / 400))
  
# Simulate outcome
  home_win <- runif(1) < expected_home
  result_home <- ifelse(home_win, 1, 0)
  result_away <- 1 - result_home
  
# Update ratings
  new_rating_home <- rating_home + k * (result_home - expected_home)
  new_rating_away <- rating_away + k * (result_away - (1 - expected_home))
  
  elo_ratings_2022[home] <- new_rating_home
  elo_ratings_2022[away] <- new_rating_away
  
# Save results
  nrl2022_results$hteam_rating[i] <- rating_home
  nrl2022_results$ateam_rating[i] <- rating_away
  nrl2022_results$expected_home_win[i] <- expected_home
  nrl2022_results$predicted_winner[i] <- ifelse(home_win, home, away)
}

# View nrl2022_results as a kableextra table
nrl2022_results %>%
  kable(caption = "Table 3 - 2022 NRL Match Data Set with Home and Away Team Elo Scores and Probabilistic Odds of Match Winner with the predicted winner") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive")) %>%
  scroll_box(height = "400px")
Table 3 - 2022 NRL Match Data Set with Home and Away Team Elo Scores and Probabilistic Odds of Match Winner with the predicted winner
match_id round date location hteam ateam hteam_rating ateam_rating expected_home_win predicted_winner
1 1 10/03/2022 09:05 BlueBet Stadium Panthers Sea Eagles 1728.996 1531.314 0.8193749 Panthers
2 1 11/03/2022 07:00 GIO Stadium Raiders Sharks 1514.628 1457.995 0.6682274 Sharks
3 1 11/03/2022 09:05 Suncorp Stadium Broncos Rabbitohs 1379.799 1680.879 0.2044049 Rabbitohs
4 1 12/03/2022 04:00 Sydney Cricket Ground Roosters Knights 1636.135 1464.535 0.7960810 Knights
5 1 12/03/2022 06:30 Sunshine Coast Stadium Warriors Dragons 1412.634 1408.828 0.5977460 Dragons
6 1 12/03/2022 08:35 CommBank Stadium Wests Tigers Storm 1390.592 1754.440 0.1518321 Wests Tigers
7 1 13/03/2022 05:05 CommBank Stadium Eels Titans 1588.811 1403.083 0.8089666 Eels
8 1 13/03/2022 07:15 Queensland Country Bank Stadium Cowboys Bulldogs 1361.465 1285.866 0.6919711 Bulldogs
9 2 17/03/2022 09:05 AAMI Park Storm Rabbitohs 1737.476 1684.967 0.6629432 Storm
10 2 18/03/2022 07:00 Netstrata Jubilee Stadium Dragons Panthers 1420.783 1732.609 0.1945291 Panthers
11 2 18/03/2022 09:05 Sydney Cricket Ground Roosters Sea Eagles 1620.213 1527.702 0.7123264 Sea Eagles
12 2 19/03/2022 04:00 Cbus Super Stadium Titans Warriors 1399.262 1400.679 0.5904947 Titans
13 2 19/03/2022 06:30 PointsBet Stadium Sharks Eels 1471.359 1592.632 0.4197180 Eels
14 2 19/03/2022 08:35 Queensland Country Bank Stadium Cowboys Raiders 1347.625 1501.264 0.3751365 Raiders
15 2 20/03/2022 05:05 McDonald Jones Stadium Knights Wests Tigers 1480.457 1407.556 0.6886515 Knights
16 2 20/03/2022 07:15 Accor Stadium Bulldogs Broncos 1299.706 1375.711 0.4841677 Broncos
17 3 24/03/2022 09:05 WIN Stadium Dragons Sharks 1416.892 1462.965 0.5272115 Dragons
18 3 25/03/2022 07:00 Campbelltown Sports Stadium Wests Tigers Warriors 1401.329 1392.489 0.6046923 Wests Tigers
19 3 25/03/2022 09:05 Accor Stadium Rabbitohs Roosters 1678.226 1605.967 0.6878585 Rabbitohs
20 3 26/03/2022 04:00 Carrington Park Panthers Knights 1736.499 1486.684 0.8596304 Knights
21 3 26/03/2022 06:30 AAMI Park Storm Eels 1744.218 1601.026 0.7682482 Eels
22 3 26/03/2022 08:35 GIO Stadium Raiders Titans 1508.766 1407.452 0.7225973 Raiders
23 3 27/03/2022 05:05 Suncorp Stadium Broncos Cowboys 1385.394 1340.123 0.6535710 Broncos
24 3 27/03/2022 07:15 4 Pines Park Sea Eagles Bulldogs 1541.948 1290.022 0.8610902 Bulldogs
25 4 31/03/2022 09:05 Cbus Super Stadium Titans Wests Tigers 1401.904 1409.235 0.5822384 Wests Tigers
26 4 01/04/2022 07:00 PointsBet Stadium Sharks Knights 1453.509 1503.876 0.5210456 Knights
27 4 01/04/2022 09:05 BlueBet Stadium Panthers Rabbitohs 1719.307 1684.469 0.6398500 Panthers
28 4 02/04/2022 04:00 Moreton Daily Stadium Warriors Broncos 1384.583 1392.323 0.5816664 Broncos
29 4 02/04/2022 06:30 Glen Willow Oval Sea Eagles Raiders 1524.727 1514.314 0.6068541 Sea Eagles
30 4 02/04/2022 08:35 Queensland Country Bank Stadium Cowboys Roosters 1333.194 1599.724 0.2386489 Cowboys
31 4 03/04/2022 06:05 AAMI Park Storm Bulldogs 1728.853 1307.244 0.9427376 Bulldogs
32 4 03/04/2022 08:15 CommBank Stadium Eels Dragons 1616.391 1426.348 0.8127756 Dragons
33 5 07/04/2022 09:50 McDonald Jones Stadium Knights Sea Eagles 1514.297 1532.590 0.5668160 Sea Eagles
34 5 08/04/2022 08:00 Moreton Daily Stadium Warriors Cowboys 1372.950 1348.421 0.6260642 Cowboys
35 5 08/04/2022 09:55 Suncorp Stadium Broncos Roosters 1403.956 1584.497 0.3395929 Broncos
36 5 09/04/2022 05:00 McDonalds Park Raiders Storm 1506.451 1709.998 0.3105526 Storm
37 5 09/04/2022 07:30 Accor Stadium Rabbitohs Dragons 1677.266 1442.603 0.8487712 Rabbitohs
38 5 09/04/2022 09:35 Cbus Super Stadium Titans Eels 1390.259 1600.136 0.3028051 Titans
39 5 10/04/2022 06:05 PointsBet Stadium Sharks Wests Tigers 1443.088 1420.880 0.6229320 Sharks
40 5 10/04/2022 08:15 CommBank Stadium Bulldogs Panthers 1326.099 1726.510 0.1266642 Panthers
41 6 14/04/2022 09:50 GIO Stadium Raiders Cowboys 1500.240 1360.942 0.7642341 Raiders
42 6 15/04/2022 06:00 Accor Stadium Rabbitohs Bulldogs 1680.290 1323.565 0.9189112 Rabbitohs
43 6 15/04/2022 09:55 BlueBet Stadium Panthers Broncos 1729.043 1417.164 0.8974760 Panthers
44 6 16/04/2022 07:30 4 Pines Park Sea Eagles Titans 1543.926 1404.203 0.7646742 Sea Eagles
45 6 16/04/2022 09:35 AAMI Park Storm Sharks 1716.209 1450.630 0.8702270 Storm
46 6 17/04/2022 04:00 Sydney Cricket Ground Roosters Warriors 1571.289 1360.428 0.8303318 Roosters
47 6 17/04/2022 06:05 WIN Stadium Dragons Knights 1439.579 1502.961 0.5023280 Dragons
48 6 18/04/2022 06:00 CommBank Stadium Eels Wests Tigers 1586.192 1413.338 0.7972498 Eels
49 7 21/04/2022 09:50 PointsBet Stadium Sharks Sea Eagles 1448.034 1548.632 0.4489485 Sharks
50 7 22/04/2022 09:55 Suncorp Stadium Broncos Bulldogs 1415.114 1321.944 0.7131023 Bulldogs
51 7 23/04/2022 07:30 Queensland Country Bank Stadium Cowboys Titans 1356.227 1399.497 0.5312318 Cowboys
52 7 23/04/2022 09:35 CommBank Stadium Wests Tigers Rabbitohs 1409.283 1681.912 0.2323289 Rabbitohs
53 7 24/04/2022 04:00 McDonald Jones Stadium Knights Eels 1493.008 1590.247 0.4537369 Eels
54 7 24/04/2022 06:05 BlueBet Stadium Panthers Raiders 1731.093 1504.956 0.8423640 Panthers
55 7 25/04/2022 06:00 Sydney Cricket Ground Dragons Roosters 1449.532 1574.682 0.4142916 Roosters
56 7 25/04/2022 09:00 AAMI Park Storm Warriors 1718.804 1357.035 0.9210487 Storm
57 8 28/04/2022 09:50 Suncorp Stadium Broncos Sharks 1400.851 1459.055 0.5097796 Broncos
58 8 29/04/2022 08:00 Cbus Super Stadium Titans Panthers 1390.121 1734.246 0.1670372 Panthers
59 8 29/04/2022 09:55 Central Coast Stadium Rabbitohs Sea Eagles 1686.559 1537.611 0.7740951 Sea Eagles
60 8 30/04/2022 05:00 Moreton Daily Stadium Warriors Raiders 1355.456 1501.803 0.3850256 Warriors
61 8 30/04/2022 07:30 Accor Stadium Bulldogs Roosters 1336.206 1582.968 0.2599345 Roosters
62 8 30/04/2022 09:35 TIO Stadium Eels Cowboys 1599.321 1365.602 0.8480729 Eels
63 8 01/05/2022 04:00 McDonald Jones Stadium Knights Storm 1483.933 1720.383 0.2715153 Storm
64 8 01/05/2022 06:05 WIN Stadium Dragons Wests Tigers 1441.246 1404.637 0.6421967 Dragons
65 9 05/05/2022 09:50 Accor Stadium Rabbitohs Broncos 1671.077 1410.656 0.8668366 Rabbitohs
66 9 06/05/2022 08:00 GIO Stadium Raiders Bulldogs 1489.503 1331.007 0.7835625 Raiders
67 9 06/05/2022 09:55 BlueBet Stadium Panthers Eels 1737.587 1602.360 0.7599853 Eels
68 9 07/05/2022 05:00 4 Pines Park Sea Eagles Wests Tigers 1553.093 1397.481 0.7807337 Wests Tigers
69 9 07/05/2022 07:30 BB Print Stadium Roosters Titans 1588.167 1386.780 0.8225096 Roosters
70 9 07/05/2022 09:35 Queensland Country Bank Stadium Cowboys Knights 1362.564 1478.503 0.4272139 Knights
71 9 08/05/2022 04:00 AAMI Park Storm Dragons 1725.814 1448.402 0.8777268 Storm
72 9 08/05/2022 06:05 PointsBet Stadium Sharks Warriors 1449.251 1367.756 0.6991585 Sharks
73 10 13/05/2022 08:00 Suncorp Stadium Bulldogs Knights 1326.678 1487.047 0.3660997 Knights
74 10 13/05/2022 10:05 Suncorp Stadium Sea Eagles Broncos 1537.479 1407.993 0.7539054 Sea Eagles
75 10 14/05/2022 05:00 Suncorp Stadium Warriors Rabbitohs 1361.739 1673.740 0.1943710 Rabbitohs
76 10 14/05/2022 07:30 Suncorp Stadium Titans Dragons 1383.231 1445.957 0.5032721 Titans
77 10 14/05/2022 09:45 Suncorp Stadium Storm Panthers 1728.259 1722.387 0.6006014 Storm
78 10 15/05/2022 03:50 Suncorp Stadium Sharks Raiders 1455.268 1493.832 0.5379702 Raiders
79 10 15/05/2022 06:05 Suncorp Stadium Roosters Eels 1591.717 1617.560 0.5561140 Roosters
80 10 15/05/2022 08:25 Suncorp Stadium Wests Tigers Cowboys 1413.095 1354.019 0.6713371 Wests Tigers
81 11 19/05/2022 09:50 McDonald Jones Stadium Knights Broncos 1494.369 1403.071 0.7108928 Knights
82 11 20/05/2022 08:00 Leichhardt Oval Wests Tigers Bulldogs 1419.669 1319.356 0.7214399 Wests Tigers
83 11 20/05/2022 09:55 CommBank Stadium Eels Sea Eagles 1608.682 1542.400 0.6804232 Eels
84 11 21/05/2022 05:00 Netstrata Jubilee Stadium Dragons Warriors 1436.022 1357.851 0.6951185 Warriors
85 11 21/05/2022 07:30 Queensland Country Bank Stadium Cowboys Storm 1347.446 1736.247 0.1342436 Cowboys
86 11 21/05/2022 09:35 Sydney Cricket Ground Roosters Panthers 1600.594 1714.399 0.4302225 Panthers
87 11 22/05/2022 04:00 Apex Oval Rabbitohs Raiders 1677.628 1504.592 0.7974197 Raiders
88 11 22/05/2022 06:05 Cbus Super Stadium Titans Sharks 1393.165 1444.508 0.5196440 Sharks
89 12 26/05/2022 09:50 AAMI Park Storm Sea Eagles 1718.932 1536.009 0.8064584 Sea Eagles
90 12 27/05/2022 08:00 BlueBet Stadium Panthers Cowboys 1723.004 1364.761 0.9195596 Panthers
91 12 27/05/2022 09:55 Suncorp Stadium Broncos Titans 1397.289 1382.772 0.6124761 Broncos
92 12 28/05/2022 05:00 Moreton Daily Stadium Warriors Knights 1371.754 1500.151 0.4097632 Knights
93 12 28/05/2022 07:30 Accor Stadium Rabbitohs Wests Tigers 1661.679 1425.240 0.8500794 Rabbitohs
94 12 28/05/2022 09:35 PointsBet Stadium Sharks Roosters 1454.901 1591.990 0.3977193 Roosters
95 12 29/05/2022 04:00 Belmore Sports Ground Bulldogs Dragons 1313.785 1422.120 0.4379574 Bulldogs
96 12 29/05/2022 06:05 GIO Stadium Raiders Eels 1520.540 1615.074 0.4576000 Raiders
97 13 02/06/2022 09:50 Cbus Super Stadium Titans Cowboys 1375.022 1363.153 0.6088534 Cowboys
98 13 03/06/2022 09:55 BlueBet Stadium Panthers Bulldogs 1724.612 1325.026 0.9354976 Panthers
99 13 04/06/2022 09:35 4 Pines Park Sea Eagles Warriors 1552.138 1363.558 0.8114902 Sea Eagles
100 13 05/06/2022 06:05 GIO Stadium Raiders Roosters 1531.388 1599.944 0.4948823 Roosters
101 14 10/06/2022 09:55 Queensland Country Bank Stadium Cowboys Dragons 1375.330 1410.879 0.5422814 Dragons
102 14 11/06/2022 05:00 Cbus Super Stadium Titans Rabbitohs 1362.845 1664.678 0.2037014 Rabbitohs
103 14 11/06/2022 07:30 Sydney Cricket Ground Roosters Storm 1609.842 1702.803 0.4598478 Storm
104 14 11/06/2022 09:35 Suncorp Stadium Broncos Raiders 1405.039 1521.490 0.4264922 Raiders
105 14 12/06/2022 04:00 Campbelltown Sports Stadium Wests Tigers Sea Eagles 1422.242 1555.908 0.4024475 Sea Eagles
106 14 12/06/2022 06:05 McDonald Jones Stadium Knights Panthers 1508.346 1725.903 0.2935541 Panthers
107 14 12/06/2022 08:15 Moreton Daily Stadium Warriors Sharks 1359.788 1446.947 0.4681546 Sharks
108 14 13/06/2022 06:00 Accor Stadium Bulldogs Eels 1323.736 1604.226 0.2243562 Eels
109 15 16/06/2022 09:50 WIN Stadium Dragons Rabbitohs 1421.725 1668.752 0.2596419 Rabbitohs
110 15 17/06/2022 08:00 4 Pines Park Sea Eagles Cowboys 1563.957 1364.484 0.8208961 Sea Eagles
111 15 17/06/2022 09:55 AAMI Park Storm Broncos 1712.000 1396.509 0.8993732 Broncos
112 15 18/06/2022 05:00 C.ex Coffs International Stadium Sharks Titans 1456.310 1358.771 0.7182200 Sharks
113 15 18/06/2022 07:30 Moreton Daily Stadium Warriors Panthers 1350.425 1731.774 0.1393081 Warriors
114 15 18/06/2022 09:35 CommBank Stadium Eels Roosters 1608.713 1600.645 0.6036295 Roosters
115 15 19/06/2022 04:00 GIO Stadium Raiders Knights 1530.020 1502.475 0.6301201 Knights
116 15 19/06/2022 06:05 CommBank Stadium Bulldogs Wests Tigers 1319.249 1414.193 0.4570138 Bulldogs
117 16 30/06/2022 09:50 4 Pines Park Sea Eagles Storm 1567.539 1694.012 0.4124450 Storm
118 16 01/07/2022 08:00 McDonald Jones Stadium Knights Titans 1515.078 1353.135 0.7869077 Titans
119 16 01/07/2022 09:55 BlueBet Stadium Panthers Roosters 1714.560 1612.718 0.7232061 Panthers
120 16 02/07/2022 05:00 CommBank Stadium Bulldogs Sharks 1330.108 1461.945 0.4049833 Bulldogs
121 16 02/07/2022 07:30 Queensland Country Bank Stadium Cowboys Broncos 1360.902 1414.497 0.5164075 Broncos
122 16 02/07/2022 09:35 Accor Stadium Rabbitohs Eels 1673.944 1596.640 0.6940601 Rabbitohs
123 16 03/07/2022 04:00 Mt Smart Stadium Warriors Wests Tigers 1367.639 1403.333 0.5420751 Warriors
124 16 03/07/2022 06:05 WIN Stadium Dragons Raiders 1416.532 1517.418 0.4485389 Dragons
125 17 07/07/2022 09:50 PointsBet Stadium Sharks Storm 1450.045 1702.261 0.2539409 Storm
126 17 08/07/2022 09:55 McDonald Jones Stadium Knights Rabbitohs 1499.339 1680.063 0.3393573 Rabbitohs
127 17 09/07/2022 09:35 Leichhardt Oval Wests Tigers Eels 1394.174 1590.521 0.3194950 Wests Tigers
128 17 10/07/2022 06:05 Suncorp Stadium Broncos Dragons 1424.825 1427.561 0.5886575 Broncos
129 18 15/07/2022 08:00 Queensland Country Bank Stadium Cowboys Sharks 1350.574 1444.966 0.4578016 Cowboys
130 18 15/07/2022 09:55 CommBank Stadium Eels Warriors 1576.911 1376.797 0.8214375 Eels
131 18 16/07/2022 05:00 Central Coast Stadium Roosters Dragons 1607.182 1419.334 0.8108444 Roosters
132 18 16/07/2022 07:30 4 Pines Park Sea Eagles Knights 1559.290 1492.552 0.6809944 Knights
133 18 16/07/2022 09:35 Cbus Super Stadium Titans Broncos 1368.873 1433.052 0.5011824 Broncos
134 18 17/07/2022 04:00 CommBank Stadium Wests Tigers Panthers 1407.784 1720.096 0.1940919 Panthers
135 18 17/07/2022 06:05 AAMI Park Storm Raiders 1707.340 1506.389 0.8221437 Storm
136 18 17/07/2022 08:15 Accor Stadium Bulldogs Rabbitohs 1342.009 1686.850 0.1664640 Rabbitohs
137 19 21/07/2022 09:50 CommBank Stadium Eels Broncos 1580.482 1443.075 0.7622670 Broncos
138 19 22/07/2022 08:00 Netstrata Jubilee Stadium Dragons Sea Eagles 1415.551 1545.670 0.4073680 Sea Eagles
139 19 22/07/2022 09:55 McDonald Jones Stadium Knights Roosters 1506.172 1610.965 0.4429829 Roosters
140 19 23/07/2022 05:00 GIO Stadium Raiders Warriors 1502.831 1373.226 0.7540329 Raiders
141 19 23/07/2022 07:30 BlueBet Stadium Panthers Sharks 1723.978 1434.122 0.8852091 Panthers
142 19 23/07/2022 09:35 Accor Stadium Rabbitohs Storm 1690.180 1710.897 0.5633848 Rabbitohs
143 19 24/07/2022 04:00 CommBank Stadium Bulldogs Titans 1338.680 1358.850 0.5641597 Bulldogs
144 19 24/07/2022 06:05 Queensland Country Bank Stadium Cowboys Wests Tigers 1361.418 1403.903 0.5323566 Cowboys
145 20 28/07/2022 09:50 4 Pines Park Sea Eagles Roosters 1553.818 1619.824 0.4985514 Roosters
146 20 29/07/2022 08:00 Mt Smart Stadium Warriors Storm 1368.307 1702.165 0.1754229 Storm
147 20 29/07/2022 09:55 CommBank Stadium Eels Panthers 1565.237 1726.273 0.3652083 Eels
148 20 30/07/2022 05:00 Cbus Super Stadium Titans Raiders 1350.133 1507.751 0.3697820 Titans
149 20 30/07/2022 07:30 PointsBet Stadium Sharks Rabbitohs 1431.826 1698.912 0.2380685 Rabbitohs
150 20 30/07/2022 09:35 Suncorp Stadium Broncos Wests Tigers 1458.321 1394.550 0.6772725 Wests Tigers
151 20 31/07/2022 04:00 McDonald Jones Stadium Knights Bulldogs 1497.313 1347.396 0.7750688 Bulldogs
152 20 31/07/2022 06:05 Netstrata Jubilee Stadium Dragons Cowboys 1407.404 1370.771 0.6422281 Dragons
153 21 04/08/2022 09:50 Sydney Cricket Ground Roosters Broncos 1629.796 1444.775 0.8083358 Roosters
154 21 05/08/2022 08:00 AAMI Park Storm Titans 1705.673 1362.737 0.9127965 Storm
155 21 05/08/2022 09:55 4 Pines Park Sea Eagles Eels 1543.847 1577.933 0.5443717 Sea Eagles
156 21 06/08/2022 05:00 Sunshine Coast Stadium Rabbitohs Warriors 1703.673 1364.798 0.9109176 Rabbitohs
157 21 06/08/2022 07:30 GIO Stadium Raiders Panthers 1495.146 1713.577 0.2925110 Panthers
158 21 06/08/2022 09:35 PointsBet Stadium Sharks Dragons 1427.065 1414.559 0.6097255 Sharks
159 21 07/08/2022 04:00 Salter Oval Bulldogs Cowboys 1362.898 1363.615 0.5914687 Bulldogs
160 21 07/08/2022 06:05 Campbelltown Sports Stadium Wests Tigers Knights 1408.095 1481.811 0.4874594 Wests Tigers
161 22 11/08/2022 09:50 BlueBet Stadium Panthers Storm 1719.428 1707.417 0.6090468 Panthers
162 22 12/08/2022 08:00 Mt Smart Stadium Warriors Bulldogs 1363.017 1371.068 0.5812292 Warriors
163 22 12/08/2022 09:55 CommBank Stadium Eels Rabbitohs 1568.820 1705.455 0.3983459 Rabbitohs
164 22 13/08/2022 05:00 Sydney Cricket Ground Roosters Cowboys 1633.629 1355.445 0.8782036 Roosters
165 22 13/08/2022 07:30 Scully Park Wests Tigers Sharks 1418.346 1434.870 0.5693127 Wests Tigers
166 22 13/08/2022 09:35 Suncorp Stadium Broncos Knights 1440.942 1471.560 0.5493183 Broncos
167 22 14/08/2022 04:00 GIO Stadium Raiders Dragons 1489.296 1406.754 0.7004250 Dragons
168 22 14/08/2022 06:05 Cbus Super Stadium Titans Sea Eagles 1360.993 1552.959 0.3250024 Titans
169 23 18/08/2022 09:50 Accor Stadium Rabbitohs Panthers 1713.422 1727.247 0.5731189 Rabbitohs
170 23 19/08/2022 08:00 Queensland Country Bank Stadium Cowboys Warriors 1353.009 1371.392 0.5666868 Cowboys
171 23 19/08/2022 09:55 Suncorp Stadium Broncos Storm 1449.956 1699.598 0.2567578 Storm
172 23 20/08/2022 05:00 CommBank Stadium Eels Bulldogs 1560.853 1362.693 0.8197824 Eels
173 23 20/08/2022 07:30 4 Pines Park Sea Eagles Sharks 1539.459 1426.257 0.7361042 Sharks
174 23 20/08/2022 09:35 Sydney Cricket Ground Roosters Wests Tigers 1636.065 1426.960 0.8289034 Roosters
175 23 21/08/2022 04:00 WIN Stadium Dragons Titans 1420.762 1374.493 0.6548703 Titans
176 23 21/08/2022 06:05 McDonald Jones Stadium Knights Raiders 1462.547 1475.288 0.5746446 Raiders
177 24 25/08/2022 09:50 Suncorp Stadium Broncos Eels 1444.820 1564.458 0.4220124 Broncos
178 24 26/08/2022 08:00 BlueBet Stadium Panthers Warriors 1718.709 1362.726 0.9185924 Panthers
179 24 26/08/2022 09:55 AAMI Park Storm Roosters 1704.733 1639.487 0.6791266 Roosters
180 24 27/08/2022 05:00 GIO Stadium Raiders Sea Eagles 1486.781 1524.737 0.5388400 Sea Eagles
181 24 27/08/2022 07:30 PointsBet Stadium Sharks Bulldogs 1440.979 1359.089 0.6996367 Bulldogs
182 24 27/08/2022 09:35 Accor Stadium Rabbitohs Cowboys 1721.959 1361.675 0.9204250 Rabbitohs
183 24 28/08/2022 04:00 CommBank Stadium Wests Tigers Dragons 1423.538 1407.665 0.6143280 Dragons
184 24 28/08/2022 06:05 Cbus Super Stadium Titans Knights 1387.590 1451.054 0.5022115 Titans
185 25 01/09/2022 09:50 CommBank Stadium Eels Storm 1552.898 1691.151 0.3961154 Storm
186 25 02/09/2022 08:00 Accor Stadium Bulldogs Sea Eagles 1373.081 1535.514 0.3633465 Sea Eagles
187 25 02/09/2022 09:55 Allianz Stadium Roosters Rabbitohs 1653.069 1723.551 0.4921117 Roosters
188 25 03/09/2022 05:00 Mt Smart Stadium Warriors Titans 1361.098 1397.546 0.5409966 Titans
189 25 03/09/2022 07:30 Netstrata Jubilee Stadium Dragons Broncos 1419.951 1456.380 0.5410249 Broncos
190 25 03/09/2022 09:35 Queensland Country Bank Stadium Cowboys Panthers 1360.083 1720.337 0.1545151 Panthers
191 25 04/09/2022 04:00 McDonald Jones Stadium Knights Sharks 1441.098 1426.986 0.6119235 Knights
192 25 04/09/2022 06:05 Leichhardt Oval Wests Tigers Raiders 1411.251 1476.004 0.5003560 Wests Tigers
193 Finals W1 09/09/2022 09:50 BlueBet Stadium Panthers Eels 1723.428 1544.976 0.8024094 Eels
194 Finals W1 10/09/2022 07:40 AAMI Park Storm Raiders 1699.073 1466.011 0.8475850 Storm
195 Finals W1 10/09/2022 09:50 PointsBet Stadium Sharks Cowboys 1419.225 1356.993 0.6753324 Cowboys
196 Finals W1 11/09/2022 06:05 Allianz Stadium Roosters Rabbitohs 1663.227 1713.393 0.5213345 Roosters
197 Finals W2 16/09/2022 09:50 CommBank Stadium Eels Raiders 1561.024 1462.963 0.7188281 Eels
198 Finals W2 17/09/2022 10:00 Allianz Stadium Sharks Rabbitohs 1405.718 1703.820 0.2072071 Rabbitohs
199 Finals W3 23/09/2022 09:50 Queensland Country Bank Stadium Cowboys Eels 1370.500 1566.647 0.3197445 Cowboys
200 Finals W3 24/09/2022 09:50 Accor Stadium Panthers Rabbitohs 1707.379 1707.964 0.5916534 Panthers
201 Grand Final 02/10/2022 08:30 Accor Stadium Panthers Eels 1715.546 1553.042 0.7874494 Panthers
# Build the Predicted Ladder ------
# Assign 2 points to each predicted winner
nrl2022_results <- nrl2022_results %>%
  mutate(predicted_points = 2)

# Sum up points for each team
predicted_ladder <- nrl2022_results %>%
  group_by(team = predicted_winner) %>%
  summarise(predicted_points = sum(predicted_points), .groups = "drop") %>%
  arrange(desc(predicted_points)) %>%
  mutate(predicted_rank = row_number())
View(predicted_ladder)

# Compare to Actual ladder
# create manual actual ladder for 2022 (cant find downloadable)
#library(tibble)

actual_ladder <- tribble(
  ~team,               ~points, ~actual_rank,
  "Panthers",       42,     1,
  "Sharks",        38,     2,
  "Cowboys", 36,   3,
  "Eels",        34,     4,
  "Storm",        32,     5,
  "Roosters",        32,     6,
  "Rabbitohs", 30,     7,
  "Raiders",       30,     8,
  "Broncos",       28,     9,
  "Dragons", 26, 10,
  "Sea Eagles",       20,    11,
  "Bulldogs",    18,    12,
  "Knights",      14,    13,
  "Warriors",   14,    14,
  "Wests Tigers",           10,    15,
  "Titans",      10,    16
)
View(actual_ladder)

This is the simulated fixtures of the 2022 season based on the each individual team Elo Ratings from the previous 5 seasons. Each match is simulated using Elo Ratings as the dominant precursor when calculating the expected outcome and probabilistic prediction for the winner, whilst including home field advantage as well. The simulated winner’s (and loser’s) rating is then altered depending on the outcome. It is then cycled through for the next weeks fixtures.

Accuracy Evaluation

In order to assess the accuracy of using Elo rating points as indicators for team strength, there are a number of accuracy metrics that can be used to quantify this relationship, each providing a slightly different look at whether or not it is a strong indicator.

Accuracy Metrics:

1. Spearmans Rank Correlation

Using Spearman’s Rank Correlation to compare the accuracy of each teams final Elo ratings ladder position versus their final ladder position on a combined NRL Points Ladder from 2017 - 2021.

#1. Spearmans Rank -------------------------------------------------------------------

# Ladder for each season 2017 - 2021
ladder_2017 <- tribble(
  ~team,               ~points, ~actual_rank,
  "Storm",       44,     1,
  "Roosters",        38,     2,
  "Broncos", 36,   3,
  "Eels",        36,     4,
  "Sharks",        34,     5,
  "Sea Eagles",        32,     6,
  "Panthers", 30,     7,
  "Cowboys",       30,     8,
  "Dragons",       28,     9,
  "Raiders", 26, 10,
  "Bulldogs",       24,    11,
  "Rabbitohs",    22,    12,
  "Warriors",      18,    13,
  "Wests Tigers",   18,    14,
  "Titans",           18,    15,
  "Knights",      14,    16
)
ladder_2018 <- tribble(
  ~team,               ~points, ~actual_rank,
  "Roosters",       34,     1,
  "Storm",        34,     2,
  "Rabbitohs", 34,   3,
  "Sharks",        34,     4,
  "Broncos",        32,     5,
  "Panthers",        32,     6,
  "Dragons", 32,     7,
  "Warriors",       32,     8,
  "Wests Tigers",       26,     9,
  "Raiders", 22, 10,
  "Knights",       20,    11,
  "Bulldogs",    18,    12,
  "Cowboys",      18,    13,
  "Titans",   18,    14,
  "Sea Eagles",           16,    15,
  "Eels",      14,    16
)
ladder_2019 <- tribble(
  ~team,               ~points, ~actual_rank,
  "Storm",       42,     1,
  "Roosters",        36,     2,
  "Rabbitohs", 34,   3,
  "Raiders",        32,     4,
  "Eels",        30,     5,
  "Sea Eagles",        30,     6,
  "Sharks", 26,     7,
  "Broncos",       25,     8,
  "Wests Tigers",       24,     9,
  "Panthers", 24, 10,
  "Knights",       22,    11,
  "Bulldogs",    22,    12,
  "Warriors",      21,    13,
  "Cowboys",   20,    14,
  "Dragons",           18,    15,
  "Titans",      10,    16
)
ladder_2020 <- tribble(
  ~team,               ~points, ~actual_rank,
  "Panthers",       37,     1,
  "Storm",        32,     2,
  "Eels", 30,   3,
  "Roosters",        28,     4,
  "Raiders",        28,     5,
  "Rabbitohs",        24,     6,
  "Knights", 23,     7,
  "Sharks",       20,     8,
  "Titans",       18,     9,
  "Warriors", 16, 10,
  "Wests Tigers",       14,    11,
  "Dragons",    14,    12,
  "Sea Eagles",      14,    13,
  "Cowboys",   10,    14,
  "Bulldogs",           6,    15,
  "Broncos",      6,    16
)
ladder_2021 <- tribble(
  ~team,               ~points, ~actual_rank,
  "Storm",       44,     1,
  "Panthers",        44,     2,
  "Rabbitohs", 42,   3,
  "Sea Eagles",        34,     4,
  "Roosters",        34,     5,
  "Eels",        32,     6,
  "Knights", 26,     7,
  "Titans",       22,     8,
  "Sharks",       22,     9,
  "Raiders", 22, 10,
  "Dragons",       18,    11,
  "Warriors",    18,    12,
  "Wests Tigers",      18,    13,
  "Broncos",   16,    14,
  "Cowboys",           16,    15,
  "Bulldogs",      8,    16
)

# Combine the 5 seasons by Team then sum the points
combined_ladder_df <- bind_rows(ladder_2017, ladder_2018, ladder_2019, ladder_2020, ladder_2021)
combined_ladder <- combined_ladder_df %>% 
  group_by(team) %>% 
  summarise(total_points = sum(points, na.rm = TRUE), .groups = "drop") %>% 
  arrange(desc(total_points))
# Knittr table
knitr::kable(
  combined_ladder,
  caption = "*Table 4 - The Combined NRL Points Ladder from Seasons 2017 - 2021*"
)
Table 4 - The Combined NRL Points Ladder from Seasons 2017 - 2021
team total_points
Storm 196
Roosters 170
Panthers 167
Rabbitohs 156
Eels 142
Sharks 136
Raiders 130
Sea Eagles 126
Broncos 115
Dragons 110
Knights 105
Warriors 105
Wests Tigers 100
Cowboys 94
Titans 86
Bulldogs 78
# Merge elo_ratings and combined_ladder
eloVcombined <- left_join(elo_ratings, combined_ladder, by = "team")

# create rank columns
eloVcombined <- eloVcombined %>%
  mutate(
    elo_rank = rank(-`Elo Rating`, ties.method = "min"),
    points_rank = rank(-total_points, ties.method = "min")
  )

# plot 
ggplot(eloVcombined, aes(x = points_rank, y = elo_rank, label = team)) +
  geom_point(size = 3, color = "blue") +
  geom_text(vjust = -0.5, size = 3.5) +
  geom_abline(slope = 1, intercept = 0, linetype = "dashed", color = "gray50") +
  scale_x_reverse(breaks = 1:nrow(eloVcombined)) +
  scale_y_reverse(breaks = 1:nrow(eloVcombined)) +
  labs(
    title = "Figure 2 - Elo Rank vs NRL Points Rank (2017–2021)",
    x = "Points Rank",
    y = "Elo Rank",
    caption = "Spearman's Rank Correlation Coefficient = 0.898"
  ) +
  theme_minimal()

# Spearmans rank correlation
PointsvElo_correlation <- cor(eloVcombined$Elo, eloVcombined$total_points, method = "spearman")

Spearman’s Rank Correlation is a statistical measurement that assesses the correlation or fit of a set of data points compared to the other actual, recorded data with the best possible positive fit equaling 1 and a negative correlation being -1 and no fit being 0. In this case, the final Elo rating scores per team from 2017-2021 are assessed against the combined NRL points ladder for those seasons to examine the accuracy evaluation. The correlation rank was 0.898 meaning that the final Elo ratings of each team correlate strongly with their actual competition points total indicating the Elo model’s effectiveness at ranking team strength over time.

2. How many predicted results were correct over the course of the 2022 season?

# reload 2022 data so we have the result column
nrl2022_winner <- read_csv("/home/gthornton1999/NRL_Portfolio/Data/Elo/nrl-2022-UTC.csv")

# change column names
nrl2022_winner <- nrl2022_winner %>%
  rename(
    match_id = `Match Number`,
    round = `Round Number`,
    date = Date,
    location = Location,
  )
# separate the home score and away score in the Result column
nrl2022_winner <- nrl2022_winner %>%
  separate(Result, into = c("hscore", "ascore"), sep = "-", convert = TRUE)
# add new column denoting the winner
nrl2022_winner <- nrl2022_winner %>%
  mutate(
    actual_winner = case_when(
      hscore > ascore ~ `Home Team`,
      ascore > hscore ~ `Away Team`,
      hscore == ascore ~ "Draw"
    )
  )

# add actual winner column to the nrl2022_results df to compare against the predicted winner. 
nrl2022_results <- nrl2022_results %>%
  left_join(
    nrl2022_winner %>% select(match_id, actual_winner),
    by = "match_id"
  )

# compare predicted winner vs actual winner
# creating a true/false column
nrl2022_results <- nrl2022_results %>%
  mutate(correct_prediction = predicted_winner == actual_winner)

# overall accuracy
# Turn the table into a data frame
prediction_table <- as.data.frame(table(nrl2022_results$correct_prediction))
# Rename the columns
colnames(prediction_table) <- c("Correct Prediction", "Count")
# Display as a nicely formatted table
knitr::kable(prediction_table,
             caption = "Table 5 - Accuracy of Elo Model Predictions (2022 Season)",
             align = "c")
Table 5 - Accuracy of Elo Model Predictions (2022 Season)
Correct Prediction Count
FALSE 83
TRUE 118

Table 5 represents the count of correctly predicted match outcomes as well as incorrectly predicted. The Elo rating prediction model correctly predicted 118 out of the 201 matches throughout the season, at percentage accuracy of 58.7%. This is a relatively high successful prediction percentage considering the model has limited knowledge of performance based impacts that occurred during the season such as injuries or suspensions and instead is influenced by historical form and home ground advantage. It is also important to note that the prediction model correctly predicted the Penrith Panthers to win the Grand Final.

3. Comparing my 2022 predicted ladder with actual ladder

Mean Rank Error (MRE) = an accuracy metric that assesses how far from the actual ladder outcome were my Elo-based predicted rankings.

#2. Mean Error Rank ----------------------------------------------------------------------
# ladder comparison

ladder_comparison <- predicted_ladder %>% 
  full_join(actual_ladder, by = 'team') %>% 
  mutate(
    rank_error = abs(predicted_rank - actual_rank)
  )
#kable ladder_comparison
knitr::kable(ladder_comparison,
             caption = "Table 6 - Comparisons between the predicted ladder and the actual 2022 season ladder",
             align = "c")
Table 6 - Comparisons between the predicted ladder and the actual 2022 season ladder
team predicted_points predicted_rank points actual_rank rank_error
Panthers 40 1 42 1 0
Rabbitohs 40 2 30 7 5
Roosters 34 3 32 6 3
Storm 32 4 32 5 1
Broncos 28 5 28 9 4
Eels 28 6 34 4 2
Sea Eagles 28 7 20 11 4
Bulldogs 22 8 18 12 4
Knights 22 9 14 13 4
Wests Tigers 22 10 10 15 5
Cowboys 20 11 36 3 8
Dragons 20 12 26 10 2
Raiders 20 13 30 8 5
Sharks 18 14 38 2 12
Titans 18 15 10 16 1
Warriors 10 16 14 14 2
#
mean_rank_error <- mean(ladder_comparison$rank_error, na.rm = TRUE)

The rank error column indicates how many positions each team was in my predicted ladder from where they finished in the actual 2022 ladder. The MRE is calculated as the average positional difference for each team. The MRE was calculated at 3.4 which meant that on average, each team was predicted to be between either 3 or 4 positions away from their actual finishing spot which is decent accuracy and further enhances an Elo rating system as a good predicting model considering its limitations.

Melbourne Storm Case Study

Table 1 and Figure 1 showcase the dominance of the Melbourne from 2017-2021 as they continued to consistently win games, feature in finals series’ and ultimately win Grand Finals (2017 and 2020) whilst unfortunately losing the GF in 2018 as well. During the 2022 season, the Storm again qualified for finals footy in 5th place, where unfortunately they lost their elimination final against the Raiders.

My Elo rating prediction model had them finishing in 4th position, only 1 place off their actual standing whilst correctly predicting 56% of their fixtures (Table 7). The prediction model attributed the Storm to win 15 regular season games which is exactly the number that they did win. However, it did also predict them to beat the Raiders in the first elimination final. One could assume that the Storm 2022 squad performed almost exactly as they were predicted to, allowing little room for over or under performance.

# accuracy of prediction per team
# Expand out home and away results so each team appears in both home and away games
team_accuracy <- nrl2022_results %>%
  pivot_longer(cols = c(hteam, ateam), names_to = "home_or_away", values_to = "team") %>%
  mutate(correct = ifelse(predicted_winner == actual_winner, 1, 0)) %>%
  group_by(team) %>%
  summarise(
    games = n(),
    correct_preds = sum(correct, na.rm = TRUE),
    accuracy = round(mean(correct, na.rm = TRUE), 2)
  ) %>%
  arrange(desc(accuracy))

# storm accuracy
storm_accuracy <- filter(team_accuracy, team == "Storm")

#kable storm accuracy
knitr::kable(storm_accuracy,
             caption = "Table 7 - Accuracy of Storm predicted fixtures in 2022",
             align = "c")
Table 7 - Accuracy of Storm predicted fixtures in 2022
team games correct_preds accuracy
Storm 25 14 0.56

How can this analysis be used in 2025 and beyond for the Storm?

With access to more recent data sets, this analysis can be built upon to include the 2023, 2024 and 2025 season (when finished) to inform on predictions for 2026 and highlight particularly important fixtures before they arrive. It’s a tool to monitor team form, helping staff adjust before poor trends become results and can be adjusted to account for periods of potential form loss like bye or State of Origin affected rounds. Elo rating models also add an extra layer to post-match reviews - showing not just what happened, but how it affected perceived strength whether that be a win or a loss.

Insights to Coaches, Players and Performance Staff

How this Elo Rating Prediction Model can support performance decisions:

  1. Communicate Team Strength Over Time

Elo ratings reflects performance levels relative to opponent strength, not just wins or losses. Coaches can use this to track: consistency, form trends (improvement or decline) and impact of changes in tactics or player availability.

  1. Opponent Difficulty Assessment

Elo gives a quantifiable rating of upcoming opponents, updating weekly. It can be beneficial for coaches as they can use it to plan for stronger/weaker opposition by strategising rest periods, rotations or highlight key matchups ahead of time. It is also important to not underestimate lower-ranked teams based on their ladder position when actually they might be playing well still.

  1. Performance vs. Expected Performance

The Elo model predicts expected win probabilities which can be used to compare against actual results. As mentioned previously, the 2022 Storm team performed as expected but an Elo model does offer feedback on over or under performance. Over performance (e.g., beating a strong opponent = big Elo gain) is important to review and the players and staff can learn what they did to win and under performance (e.g., narrow win vs weak opponent = little Elo gain) offers feedback on where they need to improve. Furthermore, the predicted win column for a season offers season-long feedback on whether they over or under achieved for the year. It also informs on where in the season team performance peaked and supports list management decisions beyond what 1 dimensional ladder points suggest.

  1. Visual Feedback

Elo ratings offer visual representations that are easy to interpret (line graph (Figure 1)). The players and staff can visually see their team strength going up with strong wins but also flattening with inconsistent play. It provides real-time feedback on team performance.

Elo models gives coaches a smarter way to assess team and opponent strength and helps players contextualise performance trends and match importance. It’s a low-cost, high-impact tool to inform strategy, preparation, and review.

Limitations

This particular Elo model is fairly bare with external factors that influence match result aside from team strength an having a home ground advantage. A more in depth analysis model could incorporate player details throughout the season (inc. injuries, suspensions, roster changes, retirees) as well as external influences such as weather, fatigue and travel distance. As well, accessing margin pf victory (points differentials) for each game would further enhance the accuracy of Elo rating differences. Furthermore, Elo systems are designed for 2-outcome matches (win/loss), there are draws possible in NRL but it is very rare. An initial limitation of this method of analysis was starting all teams at an equal rating of 1500. This could have been different by accessing previous years data or manually giving each team a rating relevant to their previous years finish. For example, the Cronulla Sharks won the Grand Final in 2016 so they could have had an initial rating of 1650 whereas the Newcastle Knights finished bottom so they might have had a rating of 1350. Another large limitation of this project was that the prediction model only simulated the season once which hasn’t given a fair representation of the odds for each game. A better solution would have to implemented a Monte Carlo approach and simulated it 10,000 times and taken averages of results and ladder positions.

Future Work

I believe the basis of this workflow can offer many avenues of future work to be built on top of this. Further projects and additions may include: